javascript - 在 Node.js 中使用字节数组数据以及如何处理它

标签 javascript node.js arrays

我需要从套接字获取整个字节数组数据,然后我需要将其插入到数据库中(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/

相关文章:

javascript - 带有 Node.js 的 Twilio MMS - 发送多个媒体文件

mysql - 哪个更好 : single or multiple database connections?

node.js - 如何在 Mongoose 中查询嵌套数组

javascript - 如何将数组的一项与数组的另一项连接

php - 上周日期数组(从最近的星期一开始)

javascript - 如果我在下拉列表中选择否,如何禁用按钮

javascript - JavaScript 的安全性 : Edit JS code for form validation in browser then submit the form

node.js - 如何在 Next.js 中设置没有自定义服务器的 X-Frame-Options header ?

c - 将多维数组写入文本文件

javascript - 通过 jquery 添加过多 html 时浏览器崩溃