使用node.js中的字节数组数据以及如何处理它

我需要从一个套接字获取整个字节数组数据,然后我需要将它插入数据库BLOB。 不要问我为什么不从byte数组格式化数据,因为我需要使用这个结构。

我将字节数组数据存储到一个js数组中。 我试图把它存储在一个缓冲区对象,但是当我尝试将字节数组数据写入缓冲区时出现错误,因为它可以将其转换。

我的问题是如何在js中使用字节数组最简单的方法。 我有以下代码:

var buff =[]; sock.on('data', function(data) { buff.push(data); }) sock.on('end', function() { console.log(data) // [<Byte Array>,<Byte Array>, ...] }); 

基本上我想插入我的数据作为[]不是[,, …]。 什么是我的问题的最佳解决scheme?

根据你的数据库接口,你可能能够将你的JS数组的每个元素作为一个单独的块进行stream式处理。

node.js现在提供了一个Buffer.concat(...)方法来将一堆缓冲区连接成一个缓冲区(基本上replace下面提到的“buffertools”库)。

 var buffers = []; sock.on('data', function(data) { buffers.push(data); }).on('end', function() { var bytes = Buffer.concat(buffers); // One big byte array here. // ... }); 

[原创]或者,您可以使用buffertools模块将所有块连接到单个缓冲区。 例如:

 var buffertools = require('buffertools'); var buff = new Buffer(); sock.on('data', function(data) { buff = buff.concat(data); }).on('end', function() { console.log(buff); // <Byte Array> });