在koa中使用快递中间件

我有现成的代码实现了一个快递中间件。 如何在Koa应用程序中使用这个中间件?

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

 AssertionError: app.use() requires a generator function 

所以我想在这里需要一些适配器或技巧…想法?

另外,你可以试试koa-connect: https : //github.com/vkurchatkin/koa-connect

它看起来非常简单:

 var koa = require('koa'); var c2k = require('koa-connect'); var app = koa(); function middleware (req, res, next) { console.log('connect'); next(); } app.use(c2k(middleware)); app.use(function * () { this.body = 'koa'; }); app.listen(3000); 

koa与高速中间件不兼容。 (详细的解释请参阅这篇博文 ,特别是“更好的书面中间件”部分)。

你可以重写你的koa中间件。 koa wiki有编写中间件的特别指南 。

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

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

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

因为koa-connect的作者还没有发布下一个版本(npm我koa-connect @下一个没有工作),并且它不兼容webpack-dev-middleware和webpack-hot-middleware。