2014-07-08 13 views
0

在使用Express的NodeJS應用程序中,似乎我需要將所有「獲取」路徑添加到「應用程序」快速變量。如果我只需要註冊模塊並且不註冊每條路線就好了。我來自ASP.NET MVC背景,如果我創建一個Controller類,它會自動路由到。有沒有辦法使Express可以像這樣工作,還是需要將路線添加到這個不斷增長的路徑文件中?它可以做一些反思,或者有辦法設置它嗎?如何避免將所有路由添加到使用Express的NodeJS中的應用程序對象?

var app = express(); 

// all environments 
app.set('port', process.env.PORT || 3000); 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.json()); 
app.use(express.urlencoded()); 
app.use(express.methodOverride()); 
app.use(app.router); 

import stylus = require('stylus'); 
app.use(stylus.middleware(path.join(__dirname, 'public'))); 
app.use(express.static(path.join(__dirname, 'public'))); 

// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 

app.get('/', routes.index); 
app.get('/users', user.list); 


http.createServer(app).listen(app.get('port'), function() { 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

回答

1

隨着快遞4您可以在基本路徑上安裝路由器(如微型快速的應用程序),那麼你可以建立一個路由器來處理所有/user/*路徑,一爲/article/*路徑等:

app.use('/user', routers.user); 
app.use('/article', routers.article); 
// ... 

然後,您可以將這些路由器的邏輯放在單獨的文件中,只需要在任何有意義的地方(例如在主要的app.js甚至其他路由器內)使用它們。

查看this Express 4 docs瞭解更多詳情。

相關問題