Mount Koajs应用程序位于Express之上

时间:2014-02-19 19:03:10

标签: node.js express koa

来自koajs.com:

  

app.callback()

     

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

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

我会将koa应用程序包含为Express middlware吗?我仍然使用app.callback()吗?

2 个答案:

答案 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()));