【问题标题】:Accepting a wav audio file over HTTP POST in an Express/Node server在 Express/Node 服务器中通过 HTTP POST 接受 wav 音频文件
【发布时间】:2015-10-23 17:40:12
【问题描述】:

我正在尝试通过 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 不包含我的数据?

【问题讨论】:

    标签: node.js audio curl express


    【解决方案1】:

    事实证明,这是通过使用以下声明(在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 ... >
    

    【讨论】:

      猜你喜欢
      • 2021-08-14
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多