Express子应用程序通信

时间:2017-10-11 09:05:04

标签: node.js express

我有2个子应用程序,安装方式如下:

//server.js

app.use('/am/api', subapp1)
app.use('/ucm/api', subapp2)

每个子应用程序返回一个快速路由器实例,例如:

//subapp1
var express = require('express');
var router = express.Router();

router.route('/msgs/:msg_id')
  .get(fn);

export default router


//subapp2
var express = require('express');
var router = express.Router();

router.route('/users/:user_id')
  .get(fn);

export default router

我想让这些子应用程序相互通信,就像subapp1需要来自subapp2的数据一样。有最好的做法怎么做?我不希望这些子应用程序之间存在任何文件依赖性。我需要一个干净的界面。

1 个答案:

答案 0 :(得分:0)

我认为最好的解决方案是将服务分开并在此服务中进行此通信。例如:

service.js:

const service = {};

service.action1 = function () {
  console.log('Communication with subapp2.');
}

service.action2 = function () {
  console.log('Communication with subapp1.');
}

module.exports = service;

在路线中:

const service = require('./service');

subapp1 = function () {
  service.action1();
}

subapp2 = function () {
  service.action2();
}