Javascript 为API节点组合多条路由
我正在创建一个API,有几个路由。我的文件夹结构如下所示Javascript 为API节点组合多条路由,javascript,node.js,api,routes,Javascript,Node.js,Api,Routes,我正在创建一个API,有几个路由。我的文件夹结构如下所示 -api -controllers -routes -videoRoutes -userRoutes -mainRoutes -server 在我的路由中是我的API调用。下面是我在userRoutes中的api路由示例 module.exports = function(app) { var user = require('../controllers/userController'); //user route
-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中引用它。为此,我在MainRoutes文件夹中尝试了以下方法
var mainRoutes = module.exports = function(app) {
require('./userRoutes');
require('./gameRoutes');
};
在my server.js中,我尝试用以下方式调用mainRoutes
var routes = require('./api/routes/mainRoutes')
routes(app);
但是,这不起作用,当试图在前端调用API调用时,它们都不起作用。我的代码工作得很好,就好像我合并了两个文件(手动合并),但尝试使用模块导出合并似乎失败了?我做错了什么?如何让路由在两个js文件中分开,并有一个主路由器,然后在my server.js中引用它
此外,如果这是一种不好的做法,或者任何人对其他方法有任何建议,请让我知道。如果您将mainRoutes文件更改为以下内容,应该可以:
var mainRoutes = module.exports = function(app) {
app.use(require('./userRoutes'));
app.use(require('./gameRoutes'));
};
另外,请确保您正在从各个路由导出路由器。将代码更改为以下内容:
var mainRoutes=module.exports=function(应用程序){
需要(“./userRoutes”)(应用程序);
需要(“./gameRoutes”)(应用程序);
};代码>进行以下更改是否有帮助<代码>var mainRoutes=module.exports=function(app){require('./userRoutes')(app);require('./gameRoutes')(app);}代码>是的,非常感谢。它现在起作用了:)我想我还不清楚。我有两个独立的文件。一个用户路由器和一个视频路由器。然后我想在主路由器文件中引用这些,然后只从我的主应用程序文件调用主路由器。这可能吗?非常感谢。但这对我不起作用。根据PerterVC,以下工作的var mainRoutes=module.exports=function(app){require('./userRoutes')(app);require('./gameRoutes')(app);};如果你编辑你的答案,我可以给它打勾,这样其他人可以看到它在未来