我有:
let user = require('./model/user/user.route');
let companyType = require('./model/masterCollections/companyType/companyType.route');
let jobPosting = require('./model/jobPosting/jobPosting.route');
let login = require('./model/login/login.local');
module.exports = function(app) {
app.use('/user', user);
app.use('/companyType', companyType);
app.use('/login', login.local);
app.use('/jobs', jobPosting);
}
我可以像这样手动为每个添加前缀
let prefix = '/api/v1'
app.use(prefix + '/user', user);
app.use(prefix + '/companyType', companyType);
app.use(prefix + '/login', login.local);
app.use(prefix + '/jobs', jobPosting);
但这似乎不利于最佳实践。所以我的问题是添加版本控制的最佳方法是什么。
提前致谢。
最佳答案
建议按版本管理路由文件。
如果调用 require('folder'),index.js 位于文件夹中。
我会让你知道我安排的页面。 The full code for that description is included in this link:
app.js
// ... skip ...
const apiv1 = require('./route/APIV1'); //./routes/APIV1/index.js
const apiv2 = require('./route/APIV2'); //./routes/APIV2/index.js
app.use('/APIV1', apiv1);
app.use('/APIV2', apiv2);
// ... skip ...
- APIV1
./routes/APIV1/index.js
const express = require('express');
const router = express.Router();
const user = require('./user.js');
const jobs = require('./jobs.js');
router.use('/user', user);
router.use('/jobs', jobs);
module.exports = router;
./routes/APIV1/user.js
const express = require('express');
const router = express.Router();
router.get('/', function(req, res){
res.end('/APIV1/user : get');
})
router.post('/', function(req, res){
res.end('/APIV1/user : post');
})
module.exports = router;
./routes/APIV1/jobs.js
const express = require('express');
const router = express.Router();
router.get('/', function(req, res){
res.end('/APIV1/jobs : get');
})
router.post('/', function(req, res){
res.end('/APIV1/jobs : post');
})
module.exports = router;
- APIV2
./routes/APIV2/index.js
const express = require('express');
const router = express.Router();
const user = require('./user.js');
const jobs = require('./jobs.js');
router.use('/user', user);
router.use('/jobs', jobs);
module.exports = router;
./routes/APIV2/user.js
const express = require('express');
const router = express.Router();
router.get('/', function(req, res){
res.end('/APIV2/user : get');
})
router.post('/', function(req, res){
res.end('/APIV2/user : post');
})
module.exports = router;
./routes/APIV2/jobs.js
const express = require('express');
const router = express.Router();
router.get('/', function(req, res){
res.end('/APIV2/jobs : get');
})
router.post('/', function(req, res){
res.end('/APIV2/jobs : post');
})
module.exports = router;
如果使用这种方式,您可以简单地管理您的API
祝你编码愉快~
关于node.js - ExpressJS : Best way to add prefix versioning routes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46783270/