添加body-parser后POST请求冻结

问题描述 投票:1回答:1

我正在开发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())

我加了之后,代理就不给我用了。请求 寄语 显示错误后冻结

代理错误。无法代理请求 途径这里 从localhost:8080到 http:/address-here

网上搜索没有找到解决方法。

vue.js webpack-dev-server
1个回答
0
投票

很久以来,我找到了一个解决方案:增加第二个param,让它成为一个新的应用程序。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'
                }
            }
        }
    };
© www.soinside.com 2019 - 2024. All rights reserved.