脚本宝典收集整理的这篇文章主要介绍了如何在Node.js的httpServer中接收前端发送的arraybuffer数据,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
最近使用了protobuf进行数据交互,发送在node.js接收前端的二进制数据出现了数据错误等问题。后来发现思路上面的问题,在req.on('data',()=>{})事件中的处理不适当才引发数据错乱。借此发
我先直接贴正确接收二进制数据代码
const server = http.createServer((req, res) => {
if(req.method==='OPTIONS'){
res.setHeader("Access-Control-Allow-Origin", "*");
res.statusCode=200;
}
if(req.method==='POST'){
// 存储数组空间
let msg=[];
// 接收到数据消息
req.on('data',(chunk)=>{
if(chunk){
msg.push(chunk);
}
})
// 接收完毕
req.on('end',()=>{
// 对buffer数组阵列列表进行buffer合并返回一个Buffer
let buf=Buffer.concat(msg);
conosole.log(buf)//提取Buffer正确
})
}
});
server.listen(3000,'127.0.0.1');
在nodejs中接收buffer数据需要以数组阵列的方式存储然后通过buffer.concat对数组阵列合并创建新的arraybuffer。这样就正确的接收二进制数据了。
以上是脚本宝典为你收集整理的如何在Node.js的httpServer中接收前端发送的arraybuffer数据全部内容,希望文章能够帮你解决如何在Node.js的httpServer中接收前端发送的arraybuffer数据所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。