在Koa中使用Express中间件

我有实现一个中间件的现有代码。如何在Koa应用程序中使用此中间件?

当我尝试调用app.use(expressMiddleware)以在我的Koa应用程序中使用中间件时,Koa抱怨需要生成器函数:

AssertionError: app.use() requires a generator function

所以我想这里需要某种适配器或技巧...想法?

宝儿2020/03/30 17:20:49

我已经在npm上为koa2创建了koa2-connect。https://github.com/cyrilluce/koa2-connect

npm i koa2-connect -S
// usage same as koa-connect

由于koa-connect的作者尚未发布下一版本(npm i koa-connect @ next无法正常工作),并且与webpack-dev-middleware和webpack-hot-middleware不兼容。

2020/03/30 17:20:49

koa与快速中间件不兼容。有关详细说明,请参见此博客文章,尤其是“更好地编写中间件”部分)。

您可以为koa重写中间件。koa Wiki具有编写中间件的特殊指南

在快速中间件中将收到reqres,在koa中间件中不直接可用。但是您可以通过访问koa 请求和koa 响应对象this.requestthis.response