【问题标题】:How to post data between 2 node js apps o如何在 2 个节点 js 应用程序之间发布数据
【发布时间】:2020-03-18 21:14:47
【问题描述】:

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

我需要将 POST 请求从第一个应用程序转发到第二个应用程序。其中一个字段包含大量 HTML,无法在 GET 请求中传递(加上编码问题)。

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

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)

是否可以在应用程序之间转发数据?还是我应该有另一种方法?

【问题讨论】:

  • 不能直接重定向请求吗?当然,您需要在不同端口上运行的应用程序。

标签: node.js api express amazon-ec2 connection


【解决方案1】:

我必须使用 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'}))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    相关资源
    最近更新 更多