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); }