Express - 将路由处理程序逻辑分离为控制器

时间:2015-12-09 09:34:30

标签: node.js express

我见过将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文档中没有看到任何提及,所以这只是一种新的思维方式,将逻辑与路径定义分开?

使用这种方法是否有任何表现或其他收益?

1 个答案:

答案 0 :(得分:2)

MEAN.js尝试遵循服务器端的MVC模式(模型 - 视图 - 控制器),结果是mongoose模型,服务器模板和控制器之间的逻辑划分。

作为一种改进代码组织的方法,通常也将路由和控制器分离到自己的文件中。在一个巨大的应用程序中,它可以帮助开发人员维护代码。

关于表现,我认为没有任何改善。