2014-02-19 36 views
3

的頂端貼裝Koajs應用從koajs.com:上快車

app.callback()

返回適合http.createServer()方法來處理請求的回調函數。您也可以使用此回調函數將您的koa應用程序安裝到Connect/Express應用程序中。

現在我有一個Express應用程序,它已經啓動了自己的http服務器。我如何在現有服務器上安裝koa應用程序,以便共享相同的端口?

我會將koa應用程序添加爲Express middware嗎?我仍然使用app.callback()嗎?

+1

也許 「expressapp.use(koaapp.callback())」? – bodokaiser

回答

-1

既然你需要,以安裝在特定/prefix中間件服務器實例,它會像

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

// ... 

expressApp.use('/prefix', http.createServer(koaApp.callback())); 
+0

它真的有用嗎?它提供了以下錯誤 'Router.use()需要中間件功能,但得到'+ gettype(fn)' –

+0

似乎唯一的方法是'expressApp.use('prefix',koaApp.callback())' –

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

如果你真的認爲一個條件是必要的,你的條件'if(true)'將永遠是真的 - 考慮修改你的答案以獲得更多的清晰度。 –