[英]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.