Express.js – pipe理所有路由的单个路由文件

我有点新express.js并没有find一个匹配的答案,我的问题呢。

我有一个像这样的文件夹结构的快速应用程序:

app/ |--app.js |--routes/ |--|--index.js |--|--news.js |--|--users.js |--some_other_folders/ 

至于现在,我已经在app.js中pipe理了我的路线,如下所示:

 var index = require('./routes/index'); var users = require('./routes/users'); ... app.use('/', index); app.use('/users', users); ... 

这工作正常,但我原本只想用一个文件来pipe理我所有的路由,所以我只需要在app.js.中引用这个文件。

像这样的东西:

 [app.js] var routes = require('./routes/routes'); app.use('/', routes); [routes/routes.js] ... router.get('/', function(req, res) { res.render('index.html'); }); require('./users'); // This is meant to refer to the users routes ... 

有没有办法将我的其他路线文件(如用户,新闻等)包含到“主”路由文件中?

还是有其他的最佳做法来pipe理express.js内的路线?

非常感谢你的帮助!

是的,有很好的方法来做到这一点

 [app.js] var routes = require('./routes/routes')(app); [routes/routes.js] var user = require('./user'); // get user controllers module.exports = function(app) { app.get('/', function() { ... }); app.get('/another-path', function() { ... }); app.get('/user/:id', user.display); app.post('/user/:id', user.update); }; [routes/user.js] module.exports.display = function(req, res) { ... res.render('user', data); } module.exports.update = function(req, res) { ... res.render('user', data); }