Javascript Express.js-管理所有路由的单个路由文件
我对express.js有点陌生,还没有找到与我的问题相匹配的答案 我有一个文件夹结构如下的express应用程序:Javascript Express.js-管理所有路由的单个路由文件,javascript,node.js,express,routes,Javascript,Node.js,Express,Routes,我对express.js有点陌生,还没有找到与我的问题相匹配的答案 我有一个文件夹结构如下的express应用程序: app/ |--app.js |--routes/ |--|--index.js |--|--news.js |--|--users.js |--some_other_folders/ var index = require('./routes/index'); var users = require('./routes/users'); ... app.use('/', i
app/
|--app.js
|--routes/
|--|--index.js
|--|--news.js
|--|--users.js
|--some_other_folders/
var index = require('./routes/index');
var users = require('./routes/users');
...
app.use('/', index);
app.use('/users', users);
...
[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
...
现在,我已经在app.js中管理了我的路线,如下所示:
app/
|--app.js
|--routes/
|--|--index.js
|--|--news.js
|--|--users.js
|--some_other_folders/
var index = require('./routes/index');
var users = require('./routes/users');
...
app.use('/', index);
app.use('/users', users);
...
[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
...
这很好,但我最初只想用一个文件管理我的所有路由,所以我只需要在app.js中引用这个文件
大概是这样的:
app/
|--app.js
|--routes/
|--|--index.js
|--|--news.js
|--|--users.js
|--some_other_folders/
var index = require('./routes/index');
var users = require('./routes/users');
...
app.use('/', index);
app.use('/users', users);
...
[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中是否有其他管理路线的最佳实践
非常感谢你的帮助 是的,有很好的方法可以做到这一点
[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);
}
是的,有很好的方法可以做到这一点
[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);
}
到目前为止效果很好。但是,如果我想引用另一个路由文件,如果用户请求,例如“/users”@RicoHerwig,你只需要像我一样将
app
变量传递到该文件,你会很好,因为看起来,我在这方面太笨了:app.get('/users',require('/users')(app));不工作不应该:)我没听懂你的问题,我会完成我的回答的,就这样!非常感谢:-)到目前为止效果很好。但是,如果我想引用另一个路由文件,如果用户请求,例如“/users”@RicoHerwig,你只需要像我一样将app
变量传递到该文件,你会很好,因为看起来,我在这方面太笨了:app.get('/users',require('/users')(app));不工作不应该:)我没听懂你的问题,我会完成我的回答的,就这样!非常感谢:-)