我见过将Express路由器逻辑分离为控制器文件的示例,例如meanJS
E.g。
var express = require('express'),
router = express.Router(),
catalogues = require('../controllers/catalogues');
router.route('/catalogues')
.get(catalogues.apiGET)
.post(catalogues.apiPOST);
../控制器/目录
var request = require('request');
exports.apiGET = function(req, res) {
var options = prepareCataloguesAPIHeaders(req);
request(options, function(err, response, body){
res.send(body);
});
};
exports.apiPOST = function(req, res) {
var options = prepareCataloguesAPIHeaders(req);
options.json = true;
options.body = stripBody(req.body);
request(options, function(err, response, body){
res.send(body);
});
};
我在Express文档中没有看到任何提及,所以这只是一种新的思维方式,将逻辑与路径定义分开?
使用这种方法是否有任何表现或其他收益?
答案 0 :(得分:2)
MEAN.js尝试遵循服务器端的MVC模式(模型 - 视图 - 控制器),结果是mongoose模型,服务器模板和控制器之间的逻辑划分。
作为一种改进代码组织的方法,通常也将路由和控制器分离到自己的文件中。在一个巨大的应用程序中,它可以帮助开发人员维护代码。
关于表现,我认为没有任何改善。