Запрос POST зависает после добавления парсера тела - PullRequest
1 голос
/ 05 мая 2020

Я создаю приложение vue, и для моего приложения требуется запрос api к серверу от клиента, также необходим прокси для любого запроса.

Это мое vue .config. js

const producer = require('./src/kafka/producer');
const bodyParser = require('body-parser')

module.exports = {
    devServer: {
        setup: function (app, server) {
            app.use(bodyParser.json())
            app.post('/send-message', function (req, res) {
                producer.send(req.body)
                    .then(() => {
                        res.json({result: true, error: null});
                    })
                    .catch((e) => {
                        res.status(500).json({result: false, error: e});
                    })
            });
        },
        proxy: {
            '/v2/order/by-number': {
                target: 'http://address-here'
            }
        }
    }
};

Как видите, я использую body-parser app.use (bodyParser. json ())

После того, как я добавил, у меня перестал работать проксирование. Запрос к / send-message зависает после показа ошибки

Ошибка прокси: не удалось запросить прокси-сервер путь-здесь с localhost: 8080 на http://address-here

Inte rnet поиски не привели к решению.

1 Ответ

0 голосов
/ 05 мая 2020

Долгое время нахожу решение: добавить второй параметр jsonParser в app.post ()

См. Полный пример

const producer = require('./src/kafka/producer');
const bodyParser = require('body-parser')
const jsonParser = bodyParser.json({limit: '1mb'});

module.exports = {
        devServer: {
            setup: function (app, server) {
                app.post('/send-message', jsonParser, function (req, res) {
                    producer.send(req.body)
                        .then(() => {
                            res.json({result: true, error: null});
                        })
                        .catch((e) => {
                            res.status(500).json({result: false, error: e});
                        })
                });
            },
            proxy: {
                'path': {
                    target: 'http://address-here'
                }
            }
        }
    };
...