2013-11-23 27 views
2
由express.js生成的默認app.js

,有如下一行:什麼是「app.router」 express.js

... 
app.use(app.router); 
... 

我被這行代碼混淆,因爲 1 )我找不到應用程序在express api doc上有一個名爲「router」的屬性。 2)代碼中未提及/定義「app.router」。

有一個屬性叫做「app.routes」。這不是一回事,對嗎?

請幫我解釋一下app.router是什麼以及它來自哪裏。謝謝!

回答

4

app.router是Express的路由中間件。換句話說,它是用於處理傳入請求並將它們匹配到您可能設置的任何路由的中間件。

儘管默認應用程序添加了它,但它並不是必需的,因爲Express會在首次聲明路由時自動添加路由中間件。

+0

右上方的app.use(app.router)代碼行,我添加了「console.log(app.router)」。輸出是「未定義的」。所以它不存在。這是正確的嗎? –

+0

@ NicolasS.Xu不,這聽起來不對。你能發佈更多的代碼嗎? – robertklep

+0

這裏是我得到的結果:function router(req,res,next){self__dispatch(req,res,next); } –

相關問題