如何 post 2 节点 js 应用程序之间的数据 o

How to post data between 2 node js apps o

在同一个 AWS EC2 实例上我 运行 2 Node.js 个应用程序。 第一个充当 API 网关(验证凭据,限制请求)。 第二个负责将信息保存在数据库中。我需要 2 个应用程序,因为它们最终将成为 2 个独立的微服务。现在将它们托管在同一个实例上更便宜。

我需要将 POST 请求从第一个应用转发到第二个应用。其中一个字段包含大块 HTML 并且不能在 GET 请求中传递(加上编码问题)。

第一个应用程序从浏览器接收到 AJAX POST 并使用请求模块转发数据。我正在使用本地主机调用其他服务。

router.post('/save', (req, res) => {

    let json_obj = JSON.stringify(req.body)
    let url = "http://127.0.0.1:3000/save"

    request.post({
        headers: {'content-type': 'application/x-www-form-urlencoded'},
        url: url,
        form: json_obj
    }, function(error, response, body){
        res.send(body)
    })   
});

第二个应用侦听数据,但 req.body 为空

router.post('/save', (req, res) => {
    console.log(req.body)

是否可以在应用之间转发数据?或者我应该有另一种方法吗?

我不得不使用 body-parser 来处理请求的正文。

const bodyParser     = require('body-parser')
...

// Configure express to use body-parser as middle-ware.
app.use(bodyParser.urlencoded({limit: '3mb', extended: true }))
app.use(bodyParser.json({limit: '3mb'}))