如何从另一个处理程序调用express.js处理程序

如何从另一个处理程序调用express.js处理程序,express,isomorphic-javascript,Express,Isomorphic Javascript,我正在构建一个同构的React应用程序,它在服务器上使用express.js。客户机应用程序向其他express处理程序发出大量AJAX请求,当前需要它们向自身发出多个HTTP请求 作为优化,我希望拦截我知道服务器处理的请求并直接调用它们(从而避免离开应用程序边界的成本)。我已经访问了应用程序路由器,以了解哪些路由是it处理程序的,但我正在努力找到启动新请求的最佳方式。所以我的问题是: 如何让express处理来自编程源而非网络的HTTP请求?我建议创建一个公共服务,并在两个处理程序中都需要它。

我正在构建一个同构的React应用程序,它在服务器上使用express.js。客户机应用程序向其他express处理程序发出大量AJAX请求,当前需要它们向自身发出多个HTTP请求

作为优化,我希望拦截我知道服务器处理的请求并直接调用它们(从而避免离开应用程序边界的成本)。我已经访问了应用程序路由器,以了解哪些路由是it处理程序的,但我正在努力找到启动新请求的最佳方式。所以我的问题是:


如何让express处理来自编程源而非网络的HTTP请求?

我建议创建一个公共服务,并在两个处理程序中都需要它。我要做的是打破服务中的业务逻辑,创建控制器来处理请求和调用特定的服务,这样你就可以在同一个控制器中使用多个服务

router.js

var clientController = require('../controllers/client-controller.js');
module.exports = function(router) {
  router.get('/clients', clientController.getAll);
};
var clientService = require('../services/client-service.js');
function getAll(req, res) {
  clientService.getAll().then(function(data) {
    res.json(data);
  }, function(err) {
    res.json(err);
  });
}

module.exports.getAll = getAll;
function getAll() {
  // implementation
}

module.exports.getAll = getAll;
客户端控制器.js

var clientController = require('../controllers/client-controller.js');
module.exports = function(router) {
  router.get('/clients', clientController.getAll);
};
var clientService = require('../services/client-service.js');
function getAll(req, res) {
  clientService.getAll().then(function(data) {
    res.json(data);
  }, function(err) {
    res.json(err);
  });
}

module.exports.getAll = getAll;
function getAll() {
  // implementation
}

module.exports.getAll = getAll;
客户端服务.js

var clientController = require('../controllers/client-controller.js');
module.exports = function(router) {
  router.get('/clients', clientController.getAll);
};
var clientService = require('../services/client-service.js');
function getAll(req, res) {
  clientService.getAll().then(function(data) {
    res.json(data);
  }, function(err) {
    res.json(err);
  });
}

module.exports.getAll = getAll;
function getAll() {
  // implementation
}

module.exports.getAll = getAll;

您还可以使用类似于从控制器进行http调用的功能,并利用它们。

您可以添加一些示例吗?抱歉,这并不能回答我的问题。我正在构建一个同构框架,它将被其他人使用,因此无法修改他们的代码。