Express js:将多个路由文件合并为单个文件

4
在我的express.js应用程序中,我按照以下方式组织我的路由: routes/comment.js(处理所有评论路由)
var express = require('express');
var router = express.Router();
var comment = require('../controller/comment');
router.route('/new').get(comment.create);
module.exports = router;

路由/post.js(处理所有post路由)
var express = require('express');
var router = express.Router();
var post = require('../controller/post');
router.route('/new').get(post.create);
module.exports = router;

我将app.js文件包含在代码中,就像这样:

//need to include these declarations into another file and include that file here
  //eg: require('config/main-routes');

    /*
     routes like comment/new
    */
    var comment  = require('./routes/comment');
    app.use('/comment',comment);
    /*
     routes like post/new
    */
    var post  = require('./routes/post');
    app.use('/post',post)

这个代码可以正常运行,但是我想把它包含到另一个文件中,比如说config/route-main.js,并且将其与app.js文件链接起来。

我该怎么做呢?


我不明白。 你想把这两个文件合并成一个文件吗? - Rishabh Mishra
想要将路由声明从 app.js 文件中移到另一个文件中。 - shellakkshellu
@RishabhMishra,已在app.js文件中添加了相关注释,希望这能澄清您的疑问。 - shellakkshellu
2个回答

7
app.js中包含:
var routes  = require('./config/route-main');
app.use('/',routes);

在 route-config.js 中

var express = require('express');
var router = express.Router();
var comment  = require('./routes/comment');
var post  = require('./routes/post');

router.use('/comment',comment);
router.use('/post',post)


module.exports = router

请查看此链接:

https://katieleonard.ca/blog/2016/2016-04-12-nested-routes-with-expressjs/

。其中讨论了如何在ExpressJS中使用嵌套路由。

2
您的app.js文件:
const Express = require('express');
const app = Express();

const Routes = require('./routes');
app.use('', Routes);

您的routes.js文件:

const Express = require('express');
const Router = Express.Router();

const UsersController = require('./controllers/usersController');

Router.post('/users', UsersController.CreateUser);

module.exports = Router;

您的usersController.js文件:
const CreateUser = (req, res, next) => {
  // DO STUFF HERE
}

module.exports = {
  CreateUser
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接