Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为API节点组合多条路由_Javascript_Node.js_Api_Routes - Fatal编程技术网

Javascript 为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,有几个路由。我的文件夹结构如下所示

-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);};如果你编辑你的答案,我可以给它打勾,这样其他人可以看到它在未来