繁体   English   中英

NodeJS通过一个路由文件表达多个路由文件

[英]NodeJS Express multiple route file through one route file

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

application/    
    --app.js
    --routes/
    ----V1/
    ------routes.js
    ------users.js

这是我的app.js文件:

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

 app.use('/api/v1', v1.router);

这是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;

users.js文件:

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


module.exports.router = router;

现在我如何从route.js文件中调用用户。

您应该创建一次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;

模块文件 (任何模块用户,评论等)

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

//APIs
function users(req, res) {    
    res.send("Get all users.");
}

我做的比@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;

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;

为了简化它,我将.router放在module.exports并执行。

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

对于route.js文件也是如此,然后在您的server.js或任何地方:

router.use('/api/v1', require('./routes'));
router.use('/api/v2', require('./routes2'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM