3

来自 koajs.com:

app.callback()

返回适合 http.createServer() 方法处理请求的回调函数。您也可以使用此回调函数将您的 koa 应用程序挂载到 Connect/Express 应用程序中。

现在我有一个 Express 应用程序,它已经启动了自己的 http 服务器。如何在这个现有服务器上安装一个 koa 应用程序,以便它共享相同的端口?

我会将 koa 应用程序包含为 Express 中间件吗?我还用app.callback()那个吗?

4

2 回答 2

2

expressapp.use(koaapp.callback())很好。但请记住,koaapp.callback()没有next,因此在使用 express 应用程序时不会传递错误或跳过 koaapp。

最好将它们完全分开,因为它们的 API 不兼容

var koaapp = koa()
var expressapp = express()
http.createServer(req, res) {
  if (true) koaapp(req, res);
  else expressapp(req, res);
})
于 2014-02-27T09:13:07.143 回答
-1

由于您需要一个服务器实例才能将中间件挂载到特定的/prefix.

var http = require('http');
var expressApp = require('express');
var koaApp = require('koa');

// ...

expressApp.use('/prefix', http.createServer(koaApp.callback()));
于 2014-02-20T16:15:39.087 回答