动态设置路由基本路径

时间:2019-05-05 09:50:59

标签: node.js express

我已将controller + route逻辑合并到一个文件中,并在app.js中这样加载

// Load all routes + controllers
fs.readdirSync('./controllers').forEach(function (fileName) {
  require(`./controllers/${fileName}`)(router);
});

在我的user.controller.js文件中,我有:

module.exports = (router) => {
  router.get('/user/getAll', requireAuth(Role.Admin), function(req, res, next) {
    User.find({}, { password: false }, (err, users) => {
      res.send(users);
    });
  });

  router.post('/user/add', requireAuth(Role.Admin), function(req, res, next) {
   ...
  });

  ...
}

注意,我需要一直/user添加基本路径。

我想做的是动态设置基本路径,所以我不需要在每条路线上都添加它。

我试图像这样加载我的route +控制器而没有成功,因为它没有通过router参数。

// Load all routes + controllers
fs.readdirSync('./controllers').forEach(function (fileName) {
  app.use(`/${path.parse(fileName).name}`, require(`./controllers/${fileName}`));
});

有什么想法可以使它起作用吗?如何将router传递给控制器​​

0 个答案:

没有答案