[英]Using separate controllers and routes in Node.js
我正在尋找主觀建議(我知道這可能會被關閉),但我希望能夠在node.js項目中分離路由和控制器,所以我有一些問題:
index.js
,我可以輕松地做到這一點,但這看起來很奇怪。 我已經在做app.get("/" controllers.index);
樣式分離,但我正忙着構建一個模塊,只包含另一個模塊中的所有JS文件。 我錯過了什么嗎? 如果你想獲得這一切成一個文件,你可以嘗試這樣的事情,這需要每個文件在./routes/
並調用出口到每個功能app
作為參數:
// routing.js
var fs = require('fs');
module.exports = function(app) {
fs.readdirSync(__dirname + '/routes/').forEach(function(name) {
var route = require('./routes/' + name);
route(app);
});
}
// routes/index.js
module.exports = function(app) {
app.get('/something', function(req, res) { ... });
app.get('/something/else', function(req, res) { ... });
}
// routes/pages.js
module.exports = function(app) {
app.get('/pages/first', function(req, res) { ... });
app.get('/pages/second', function(req, res) { ... });
}
// server.js
var app = express.createServer();
require('./routing')(app); // require the function from routing.js and pass in app
在GitHub上的Express' example
目錄中也有一些有趣的例子,比如基於MVC的一個實現RESTful路由,就像Rails那樣。
如果你的目的是做一些RESTish API服務器,試一試: https : //github.com/kilianc/node-apiserver也是例子: https : //github.com/kilianc/node-apiserver/blob/master/例子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.