我需要从套接字获取整个字节数组数据,然后我需要将其插入到数据库中(BLOB)。不要问我为什么不格式化字节数组中的数据,因为我需要使用该结构。
我将字节数组数据存储到js数组中。我尝试将其存储在缓冲区对象中,但当我尝试将字节数组数据写入缓冲区时出现错误,因为它可以转换它。
我的问题是如何在 js 中使用字节数组最简单的方法。 我有以下代码:
var buff =[];
sock.on('data', function(data) {
buff.push(data);
})
sock.on('end', function() {
console.log(data) // [<Byte Array>,<Byte Array>, ...]
});
基本上我想将数据插入为 [] 而不是 [,, ...]。我的问题的最佳解决方案是什么?
最佳答案
根据您的数据库接口(interface),您也许能够将 JS 数组的每个元素作为单独的 block 进行流式传输。
[更新] 看起来node.js现在提供了 Buffer.concat(...)
将一堆缓冲区连接成一个缓冲区的方法(基本上替换了我下面提到的“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模块将所有 block 连接到单个缓冲区中。例如:
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>
});
关于javascript - 在 Node.js 中使用字节数组数据以及如何处理它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14694923/