我正在尝试通过cURL将音频文件audio.wav
发送到我的Express服务器。我正在使用以下cURL请求:
curl -X POST --data-binary @"audio.wav" -H "Content-Type: audio/wav" localhost:3000/extract_indicators/audio/darksigma
在我的服务器上,我在顶部使用以下行:
app.use(bodyParser.json());
这样我就可以默认将传入请求的主体解析为JSON。在我相应的Express路由处理程序中,我有:
app.post('/extract_indicators/audio/:user_id', function (req, res) {
app.use(bodyParser.raw({ type: 'audio/wav' }));
console.log("RECIEVED AUDIO TO EXTRACT INDICATORS: ", req.body);
<do stuff with audio and send result back>
app.use(bodyParser.json());
});
我打电话给console.log
打印:
RECIEVED AUDIO TO EXTRACT INDICATORS: {}
我做错了什么?为什么req.body
不包含我的数据?
答案 0 :(得分:2)
结果证明这是通过使用以下声明(在app
处理程序之外)修复的:
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.raw({ type: 'audio/wav', limit: '50mb' }));
app.post('/extract_indicators/audio/:user_id', function (req, res) {
console.log("RECIEVED AUDIO TO EXTRACT INDICATORS: ", req.body);
<do stuff with audio and send result back>
});
控制台输出现在是:
RECIEVED AUDIO TO EXTRACT INDICATORS: <Buffer 52 49 46 46 54 b0 01 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 01 00 80 3e 00 00 00 7d 00 00 02 00 10 00 64 61 74 61 30 b0 01 00 00 00 00 00 00 00 ... >