【问题标题】:Combining several routes for API nodejs结合 API nodejs 的几个路由
【发布时间】:2018-05-25 17:11:45
【问题描述】:

我正在创建一个 API 并有多个路由。我的文件夹结构如下所示

-api
 -controllers
 -routes
  -videoRoutes
  -userRoutes
  -mainRoutes
 -server

在我的路由中是我的 API 调用。下面是我在 userRoutes 中的 api 路由示例

 module.exports = function(app) {
var user = require('../controllers/userController');

//user routes
app.route('/api/v1.0/users/getAllUsers')
    .get(user.getAllUsers);

app.route('/api/v1.0/users/login')
    .post(user.login);    

app.route('/api/v1.0/users/addUser')
    .post(user.addUser);

};

游戏路线遵循类似的结构布局。我想要一个包含所有其他路由的主路由,然后在我的 server.js 中引用它。为此,我在主路由文件夹中尝试了以下操作

var mainRoutes = module.exports = function(app) {
require('./userRoutes');
require('./gameRoutes');
};

在我的 server.js 中,我尝试通过以下方式调用 mainRoutes

 var routes = require('./api/routes/mainRoutes')
 routes(app);

但是,这不起作用,当尝试在前端调用 API 调用时,它们都不起作用。我的代码工作正常,就好像我将两个文件组合在一起(手动合并)它工作但尝试使用模块导出组合似乎失败了?我究竟做错了什么?如何将路由分隔在两个 js 文件中并拥有一个 mainRouter,然后在我的 server.js 中引用它?

另外,如果这是不好的做法或有人对替代方法有任何建议,请告诉我。

【问题讨论】:

  • 进行以下更改有帮助吗? var mainRoutes = module.exports = function(app) { require('./userRoutes')(app); require('./gameRoutes')(app); };
  • 是的,非常感谢。它现在可以工作了:)

标签: javascript node.js api routes


【解决方案1】:

将您的代码更改为以下内容:

var mainRoutes = module.exports = function(app) { require('./userRoutes')(app); require('./gameRoutes')(app); };

【讨论】:

    【解决方案2】:

    如果您将 mainRoutes 文件更改为以下内容,它应该可以工作:

    var mainRoutes = module.exports = function(app) {
      app.use(require('./userRoutes'));
      app.use(require('./gameRoutes'));
    };
    

    另外,请确保您从各个路由导出路由器。

    【讨论】:

    • 我想我一直不清楚。我有 2 个单独的文件。一个 userRouter 和一个 VideoRouter。然后我想在 mainRouter 文件中引用这些,然后只从我的主应用程序文件中调用 mainRouter。这可能吗?
    • 非常感谢。但这对我不起作用。根据 PerterVC,以下工作 var mainRoutes = module.exports = function(app){ require('./userRoutes')(app);要求('./gameRoutes')(应用程序); };如果您编辑您的答案,我可以给它打勾,以便其他人将来可以看到它
    猜你喜欢
    • 2014-09-15
    • 1970-01-01
    • 2020-02-17
    • 2016-07-13
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    相关资源
    最近更新 更多