Как разместить данные между 2 узлами JS apps o

Как разместить данные между 2 узлами JS apps o

19.03.2020 12:14:47 Просмотров 11 Источник

На том же экземпляре AWS EC2 я запускаю 2 узла.в JS приложений. Первый из них действует как шлюз API (проверяет учетные данные, регулирует запросы). Второй отвечает за сохранение информации в базе данных. Мне нужно 2 приложения, потому что со временем они будут 2 отдельных микрослужб. На данный момент дешевле разместить их на одном экземпляре.

Мне нужно переслать запрос на публикацию из первого приложения во второе. Одно из полей содержит большие куски HTML и не может быть передано внутри запроса GET (плюс проблемы с кодировкой).

Первое приложение получает сообщение AJAX из браузера и пересылает данные с помощью модуля запроса. Я использую 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 имеет значение null

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

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

У вопроса есть решение - Посмотреть?

Ответы - Как разместить данные между 2 узлами JS apps o / How to post data between 2 node js apps o

Является ответом!
Cristi Ghinea

21.03.2020 08:09:03

Мне пришлось использовать 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'}))
Закрыть X