NodeJS Express通过一个路由文件传输多个路由文件

Sid*_*Sid 3 node.js express

我正在学习NodeJS。我有一个nodeJS API项目。我想在路由中使用版本,所以我创建了以下文件夹结构。

application/    
    --app.js
    --routes/
    ----V1/
    ------routes.js
    ------users.js
Run Code Online (Sandbox Code Playgroud)

这是我的app.js文件:

 var v1 = require('./routes/v1/route');

 app.use('/api/v1', v1.router);
Run Code Online (Sandbox Code Playgroud)

这是route.js文件:

var express = require('express');
var router = express.Router();
router.get('/',function(req,res){    
    res.send("Welcome to Node JS V1");
});

var courses = require('./users').router;
-- How to include usres route here

module.exports.router = router;
Run Code Online (Sandbox Code Playgroud)

users.js文件:

var express = require('express');
var router = express.Router();
router.get('/',function(req,res){    
    res.send("Get all users.");
});


module.exports.router = router;
Run Code Online (Sandbox Code Playgroud)

现在,我如何从route.js文件呼叫用户。

Jor*_*ias 7

我会与@Shaharyar有所不同

routes.js

var express = require('express');
var router = express.Router();

router.get('/', function(req, res) {
  res.send('Welcome to Node JS V1');
});

router.use('/users', require('./users').router);

module.exports.router = router;
Run Code Online (Sandbox Code Playgroud)

users.js

var express = require('express');
var router = express.Router();

router.get('/',function(req, res){    
  res.send('Get all users.');
});

router.post('/', function(req, res) {
  // Create user
  res.send('Some response.');
});

module.exports.router = router;
Run Code Online (Sandbox Code Playgroud)

为了简化它,我会.router继续module.exports做下去。

router.use('/users', require('./users'));
Run Code Online (Sandbox Code Playgroud)

同样对于route.js文件,然后在server.js或任何地方:

router.use('/api/v1', require('./routes'));
router.use('/api/v2', require('./routes2'));
Run Code Online (Sandbox Code Playgroud)


Sha*_*yar 6

您应该创建一次Express实例,然后将其传递给所有模块。

route.js文件

//initialize
var express = require('express');
var router = express.Router();

router.get('/', function(req, res){    
    res.send("Welcome to Node JS V1");
});

//modules
require('./users')(router);
require('./sessions')(router);  //added for explaination
require('./comments')(router);  //added for explaination

//export
module.exports.router = router;
Run Code Online (Sandbox Code Playgroud)

模块文件 (任何模块用户,注释等)

//initialize
module.exports = function (router) {
    router.get('/users', users);
}

//APIs
function users(req, res) {    
    res.send("Get all users.");
}
Run Code Online (Sandbox Code Playgroud)