在koa中使用快速中间件

uri*_*ish 12 node.js express koa

我有现有的代码,实现了一个快速中间件.如何在Koa应用程序中使用此中间件?

当我尝试打电话app.use(expressMiddleware)以便在我的Koa应用程序中使用中间件时,Koa抱怨需要生成器功能:

AssertionError: app.use() requires a generator function
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*las 14

此外,您可以尝试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);
Run Code Online (Sandbox Code Playgroud)

  • 有趣的是,koa-connect是在我最初问这个问题的同一天创建的:) (6认同)

mar*_*rco 5

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

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

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