当前位置: 首页 > 后端技术 > Node.js

Node.jshttpServer如何接收前端发送的arraybuffer数据

时间:2023-04-04 01:20:11 Node.js

最近使用protobuf进行数据交互,发送到node.js接收前端的二进制数据遇到数据错误等问题。后来发现上述问题是req.on('data',()=>{})事件中处理不当,导致数据混乱造成的。我想先发布正确的二进制数据代码。constserver=http.createServer((req,res)=>{if(req.method==='OPTIONS'){res.setHeader("Access-Control-Allow-Origin","*");res.statusCode=200;}if(req.method==='POST'){//存储数组空间letmsg=[];//接收数据消息req.on('data',(chunk)=>{if(chunk){msg.push(chunk);}})//收到req.on('end',()=>{//检查缓冲区数组列表Buffermerge返回一个Bufferletbuf=Buffer.concat(msg);conosole.log(buf)//正确提取Buffer})}});server.listen(3000,'127.0.0.1');nodejs中接收buffer需要将数据以array数组的形式存储,然后通过buffer.concat将array数组合并,创建一个新的arraybuffer。这将正确接收二进制数据。