Javascript 如何在nodejs中将base64视频写入文件

Javascript 如何在nodejs中将base64视频写入文件,javascript,node.js,video,base64,Javascript,Node.js,Video,Base64,我的Express应用程序正在从浏览器接收base64编码的MP4并将其写入文件。但该文件不是有效的视频文件,“文件”实用程序只是将其标识为“数据” 我的代码: const path = `${config.uploadPath}`; const filename = `${uniqid()}.mp4`; let base64Data = req.body.base64.replace(/^data:([A-Za-z-+/]+);base64,/, ''); fs.writeFileSyn

我的Express应用程序正在从浏览器接收base64编码的MP4并将其写入文件。但该文件不是有效的视频文件,“文件”实用程序只是将其标识为“数据”

我的代码:

const path = `${config.uploadPath}`;
const filename = `${uniqid()}.mp4`;

let base64Data = req.body.base64.replace(/^data:([A-Za-z-+/]+);base64,/, '');


fs.writeFileSync(`${path}${filename}`, base64Data, 'base64');

您确定有一个名为
base64
is request-response的变量吗?如果是,请尝试以下代码:

req.body.base64 = req.body.base64.replace(/^data:(.*?);base64,/, ""); // <--- make it any type
req.body.base64 = req.body.base64.replace(/ /g, '+'); // <--- this is important

fs.writeFile(`${path}${filename}`, req.body.base64, 'base64', function(err) {
    console.log(err);
});

req.body.base64=req.body.base64.replace(/^data:(.*);base64,/,“”);//成功了!!!你能解释一下这是什么吗?->req.body.base64=req.body.base64.replace(//g,“+”);长话短说。。。您发布它的方式使它被express解释为URL编码,因此express尝试对给定的post数据进行URL解码。。。这使它成为无效的base64字符串,因为它将所有的
+
符号更改为空格(base64解码器需要
+
符号,而不是空格),因此将这些空格替换回
+
signs@FlashThunder您是否愿意解决我遇到的类似问题: