思考正確的方式,如何利用正在成長的當前正在成長的express和connect在node.js web項目中使用中間件。什麼是使用快遞和連接在節點中使用中間件的最常見方式
當然,現在有很多中間件需要在全局範圍內傳遞或擴展請求,但在很多情況下,還有一些特殊的工作需要準備傳入數據,在這種情況下,中間件只能用於一組http方法,路線。
我有一個基於組件的架構,每個組件都帶有它自己的中間件層,它可以實現這些組件可以處理的請求。在應用程序啓動時,加載和準備所有必需的組件。將中間件代碼執行綁定到URL以保持cpu加載更低還是僅將中間件用於全局目的更好?
下面是一些關於中間件相關URL的虛擬方法。
app.use(function(req, res, next) {
// Check if requested route is a part of the current component
// or if the middleware should be passed on any request
if (APP.controller.groups.Component.isExpectedRoute(req) ||
APP.controller.groups.Component.getConfig().MIDDLEWARE_PASS_ALL === true) {
// Execute the midleware code here
console.log('This is a route which should be afected by middleware');
...
next();
}else{
next();
}
});
這是一種很好的方法。這是「APP.controller.groups.Component.isExpectedRoute(req)」更好的替代方案。但是,我們如何管理「APP.controller.groups.Component.getConfig()。MIDDLEWARE_PASS_ALL === true」? –
@hilarudeens現在正在考慮同樣的問題,但這是一個我可以解決的問題。 app.get('/',...事情是在應用程序啓動時自動完成的,所以我只需要在MIDDLEWARE_PASS_ALL === true – Bernhard
@robertklep之間做出區別非常感謝,這給了我以前沒有的看法:-) – Bernhard