来自 koajs.com:
app.callback()
返回适合 http.createServer() 方法处理请求的回调函数。您也可以使用此回调函数将您的 koa 应用程序挂载到 Connect/Express 应用程序中。
现在我有一个 Express 应用程序,它已经启动了自己的 http 服务器。如何在这个现有服务器上安装一个 koa 应用程序,以便它共享相同的端口?
我会将 koa 应用程序包含为 Express 中间件吗?我还用app.callback()
那个吗?
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);
})
由于您需要一个服务器实例才能将中间件挂载到特定的/prefix
.
var http = require('http');
var expressApp = require('express');
var koaApp = require('koa');
// ...
expressApp.use('/prefix', http.createServer(koaApp.callback()));