的頂端貼裝Koajs應用從koajs.com:上快車
app.callback()
返回適合http.createServer()方法來處理請求的回調函數。您也可以使用此回調函數將您的koa應用程序安裝到Connect/Express應用程序中。
現在我有一個Express應用程序,它已經啓動了自己的http服務器。我如何在現有服務器上安裝koa應用程序,以便共享相同的端口?
我會將koa應用程序添加爲Express middware嗎?我仍然使用app.callback()
嗎?
的頂端貼裝Koajs應用從koajs.com:上快車
app.callback()
返回適合http.createServer()方法來處理請求的回調函數。您也可以使用此回調函數將您的koa應用程序安裝到Connect/Express應用程序中。
現在我有一個Express應用程序,它已經啓動了自己的http服務器。我如何在現有服務器上安裝koa應用程序,以便共享相同的端口?
我會將koa應用程序添加爲Express middware嗎?我仍然使用app.callback()
嗎?
既然你需要,以安裝在特定/prefix
中間件服務器實例,它會像
var http = require('http');
var expressApp = require('express');
var koaApp = require('koa');
// ...
expressApp.use('/prefix', http.createServer(koaApp.callback()));
它真的有用嗎?它提供了以下錯誤 'Router.use()需要中間件功能,但得到'+ gettype(fn)' –
似乎唯一的方法是'expressApp.use('prefix',koaApp.callback())' –
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);
})
如果你真的認爲一個條件是必要的,你的條件'if(true)'將永遠是真的 - 考慮修改你的答案以獲得更多的清晰度。 –
也許 「expressapp.use(koaapp.callback())」? – bodokaiser