【发布时间】: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