POST请求在添加正文解析器后冻结



我正在构建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解析器app.use(bodyParser.json(((

添加后,代理停止为我工作。显示错误后,请求/send消息冻结

代理错误:无法从localhost:8080代理请求此处的路径http://address-here

互联网搜索尚未找到解决方案。

很长一段时间以来,我找到了一个解决方案:将第二个参数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'
}
}
}
};

最新更新