Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express.js-管理所有路由的单个路由文件_Javascript_Node.js_Express_Routes - Fatal编程技术网

Javascript Express.js-管理所有路由的单个路由文件

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

我对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('/', 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));不工作不应该:)我没听懂你的问题,我会完成我的回答的,就这样!非常感谢:-)