来自koajs.com:
app.callback()
返回适合http.createServer()方法的回调函数来处理请求。您也可以使用此回调函数将您的koa应用程序安装在Connect / Express应用程序中。
现在我有一个Express应用程序已经启动了自己的http服务器。如何在现有服务器上安装koa应用程序,以便它共享同一个端口?
我会将koa应用程序包含为Express middlware吗?我仍然使用app.callback()
吗?
答案 0 :(得分:2)
expressapp.use(koaapp.callback())
没问题。但是请记住,koaapp.callback()
没有next
,所以一旦你使用它就没有传递错误到快递应用程序或跳过koaapp。
最好将它们完全分开,因为它们的API不兼容
var koaapp = koa()
var expressapp = express()
http.createServer(req, res) {
if (true) koaapp(req, res);
else expressapp(req, res);
})
答案 1 :(得分:-1)
由于您需要一个服务器实例才能在特定的/prefix
上安装中间件,所以它就像
var http = require('http');
var expressApp = require('express');
var koaApp = require('koa');
// ...
expressApp.use('/prefix', http.createServer(koaApp.callback()));