在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有编写中间件的特别指南 。
您将在快速中间件中收到的req
和res
并不直接在koa中间件中提供。 但是你可以通过this.request
和this.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。