Как разместить данные между 2 node js приложениями - PullRequest
0 голосов
/ 19 марта 2020

В том же экземпляре AWS EC2 я запускаю 2 Node.js приложения. Первый действует как шлюз API (проверяет учетные данные, регулирует запросы). Второй отвечает за сохранение информации в базе данных. Мне нужно 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)

Возможно ли пересылать данные между приложениями ? Или у меня должен быть другой подход?

1 Ответ

0 голосов
/ 21 марта 2020

Мне пришлось использовать 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'}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...