如果你想把它全部放到一个文件中,你可以尝试这样的事情,它需要每个文件,./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 一样。