我正在创建一个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中引用它?
如果这是不好的做法或任何人有任何替代方法的建议,请告诉我。
答案 0 :(得分:0)
如果您将mainRoutes文件更改为:
,它应该有效var mainRoutes = module.exports = function(app) {
app.use(require('./userRoutes'));
app.use(require('./gameRoutes'));
};
此外,请确保您从各个路线导出路由器。
答案 1 :(得分:0)
将您的代码更改为以下内容:
var mainRoutes = module.exports = function(app) {
require('./userRoutes')(app);
require('./gameRoutes')(app);
};