首页 > 解决方案 > 节点服务器中未定义的获取请求主体(数组缓冲区主体)

问题描述

我读过很多类似的问题,但任何答案都对我有用。
我试图在获取请求(在 vuejs 中)的正文中作为ArrayBuffer发送音频,但是当我在服务器端打印它时,正文是undefined
客户端代码:

export async function makeQuery(data) {

    let bufferAudio = await data.arrayBuffer();
    console.log(bufferAudio);

    const response = await fetch(`/api/query`, {
        method: 'POST',
        //headers: {'Content-Type': 'audio/mp3'},
        body: bufferAudio,
    })
    .catch(function(e) {
        console.log("error", e);
    });

    return response;
}

节点服务器代码:

const express = require('express');
const path = require('path');
const app = express(), port = 3080;

app.post('/api/query', async (req, res) => {
  query = req.body;
  console.log('query ', query); // Here the body is undefined
  
  /*
  Do some processing...
  */

});

当我在请求正文(和app.use(express.json())服务器)中发送一个简单的 json 字符串时,它可以工作。但不是使用 arraybuffer 音频。提前致谢

标签: javascriptnode.jsvue.jsexpressfetch

解决方案


推荐阅读