快递 - 路线分离方法
Express - Route separation methods
我正在尝试找到在 Express 中分隔路由的最佳方法。我知道两种方法,我想知道它们之间有什么区别,哪一种被认为是 'best practice'(以及为什么)。
方法一 - 导出
很多例子似乎都使用了这种方法
app.js
var user = require('./routes/users');
app.get('/users', user.list);
routes/users.js
exports.list = function(req, res){
res.render('users', { title: 'Users', users: users });
};
方法二 -
快递指南中使用此方法
app.js
var users = require('./routes/users');
app.use('/users', users);
routes/users.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res){
res.render('users', { title: 'Users', users: users });
});
module.exports = router;
所以正如我上面所说,哪种方法是首选方法,为什么?
方法三 - 两者都用
您应该利用 Express 4 中引入的路由器和控制器的模块化。
app.js
var routes= require('./routes');
app.use('/', routes);
routes/index.js
var express = require('express');
var users = require('../routes/users');
var router = express.Router();
router.use('/users', users);
module.exports = router;
routes/users.js
var express = require('express');
var users = require('../controllers/users');
var router = express.Router();
router.get('/', users.list);
module.exports = router;
controllers/users.js
exports.list = function(req, res){
res.render('users', { title: 'Users', users: users });
};
我正在尝试找到在 Express 中分隔路由的最佳方法。我知道两种方法,我想知道它们之间有什么区别,哪一种被认为是 'best practice'(以及为什么)。
方法一 - 导出
很多例子似乎都使用了这种方法
app.js
var user = require('./routes/users');
app.get('/users', user.list);
routes/users.js
exports.list = function(req, res){
res.render('users', { title: 'Users', users: users });
};
方法二 -
快递指南中使用此方法
app.js
var users = require('./routes/users');
app.use('/users', users);
routes/users.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res){
res.render('users', { title: 'Users', users: users });
});
module.exports = router;
所以正如我上面所说,哪种方法是首选方法,为什么?
方法三 - 两者都用
您应该利用 Express 4 中引入的路由器和控制器的模块化。
app.js
var routes= require('./routes');
app.use('/', routes);
routes/index.js
var express = require('express');
var users = require('../routes/users');
var router = express.Router();
router.use('/users', users);
module.exports = router;
routes/users.js
var express = require('express');
var users = require('../controllers/users');
var router = express.Router();
router.get('/', users.list);
module.exports = router;
controllers/users.js
exports.list = function(req, res){
res.render('users', { title: 'Users', users: users });
};