NodeJS buffer.slice()不是函数

NodeJS buffer.slice() is not a function?

本文关键字:函数 buffer slice NodeJS      更新时间:2023-10-06

我正试图使用slice()从缓冲区中删除一些不需要的元素。代码如下:

function unpack (item) { // item is a buffer
    var ivlength = 16;
    if(algorithm == 'aes-128-ecb') ivlength = 0;
    var ciphertext = item.slice(ivlength, item.length);
    return ciphertext;
}

控制台说:item.slice()不是一个函数。NodeJS文档中另有说明:buf.slice()文档。

我已经将NodeJS更新到5.9.1版本,没有任何改进。

slice()是支持的,不是splice()。

出现问题是因为我试图在unpack()函数中使用接收项作为缓冲区参数。在将它传递给该函数之前,它是在不知道缓冲区无法序列化的情况下通过套接字序列化和接收的。我通过从接收到的数据创建一个新的缓冲区来解决这个问题,如下所示:

var buff = new Buffer(_msg.content);
var data = unpack(buff);

函数slice()现在工作正常。