我是express.js的新手,但我找不到匹配的答案。
我有一个像这样的文件夹结构的快速应用程序:
app/
|--app.js
|--routes/
|--|--index.js
|--|--news.js
|--|--users.js
|--some_other_folders/
至于现在,我已经在app.js中管理了我的路线,如下所示:
var index = require('./routes/index');
var users = require('./routes/users');
...
app.use('/', index);
app.use('/users', users);
...
这很好用,但我原本只想用一个文件管理所有路由,所以我只需要在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
...
有没有办法将我的其他路径文件(如用户,新闻,...)包含在“主”路由文件中?
或者是否可能有其他最佳做法来管理express.js中的路线?
非常感谢你的帮助!
答案 0 :(得分:4)
是的,有很好的方法可以做到这一点
[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);
}