Node.js 我无法将base 64 url编码的数据发送到我的nodejs后端

Node.js 我无法将base 64 url编码的数据发送到我的nodejs后端,node.js,reactjs,Node.js,Reactjs,我正在尝试将post请求发送到包含我的图像的base64url编码值的后端。当我使用任意随机字符串发送请求时,请求在后端接收,但当我尝试使用编码值执行相同操作时,它会用 请求失败,状态代码为500 我的请求代码是: constuploadfilehandler=async(e)=>{ const file=e.target.files[0]; const reader=new FileReader(); reader.readAsDataURL(文件); reader.onloadend=()=

我正在尝试将post请求发送到包含我的图像的base64url编码值的后端。当我使用任意随机字符串发送请求时,请求在后端接收,但当我尝试使用编码值执行相同操作时,它会用

请求失败,状态代码为500

我的请求代码是:

constuploadfilehandler=async(e)=>{
const file=e.target.files[0];
const reader=new FileReader();
reader.readAsDataURL(文件);
reader.onloadend=()=>{
setPreviewSource(reader.result);
上传备份(reader.result);
};
const uploadtobackend=异步(文件数据)=>{
试一试{
常量配置={
标题:{
“内容类型”:“应用程序/json”,
},
};
console.log(config);
console.log(文件数据);
const{data}=wait axios.post(
`/api/上传`,
{
数据:filedata,
},
配置,
);
设置图像(数据);
设置加载(假);
}捕获(错误){
console.log(错误);
设置加载(假);
}
};
};
此处
filedata
是编码值,如果我对其进行控制台操作,则会显示该值。 而不是

数据:
filedata

如果我发送

数据:“一些随机字符串”


然后请求到达后端,否则不会到达。

您需要通过包装发送文件。 你可以这样做

const fd = new FormData()
// data you want to send other than file
fd.append('payload',JSON.stringify(payload))

fd.append('file',file) // file you want to send to node backend

现在,在您的备份中,您可以使用req.file

获取此文件。您可能需要使用
JSON.stringify()
以下是一些使用示例

const { data } = await axios.post(
    `/api/uploads`,
    {
       data: new Buffer(JSON.stringify(filedata)).toString("base64")
    },
    config
 )

我认为您需要将
多部分/表单数据
表单数据
一起使用。结账