Buffer.swap16 不是函数
Buffer.swap16 is not a function
我已经在 NodeJS 中测试了一些缓冲区交换功能,但在我的 Meteor 项目中它不起作用。
有人能告诉我原因吗?
节点:
var CRC = new Buffer([0x20,0x40]);
console.log(CRC.swap16()); // OUTPUT: <Buffer 40 20>
Meteor.js
var CRC = new Buffer([0x20,0x40]);
console.log(CRC.swap16()); // OUTPUT: TypeError: CRC.swap16 is not a function
有人可以帮助我吗?知道这可能是版本问题。但是暂时无法解决
还有办法得到这个东西运行流星吗?
Buffer.swap16()
方法已在 5.10.0 中添加,而 Meteor 使用 NodeJS 版本 4。
你可以从NodeJS source复制这个方法实现,它很简单(有小的修改):
function swap(b, n, m) {
const i = b[n];
b[n] = b[m];
b[m] = i;
}
Buffer.prototype.swap16 = function swap16() {
const len = this.length;
if (len % 2 !== 0) {
throw new RangeError('ERR_INVALID_BUFFER_SIZE', '16-bits');
}
for (var i = 0; i < len; i += 2) {
swap(this, i, i + 1);
}
return this;
};
我已经在 NodeJS 中测试了一些缓冲区交换功能,但在我的 Meteor 项目中它不起作用。
有人能告诉我原因吗?
节点:
var CRC = new Buffer([0x20,0x40]);
console.log(CRC.swap16()); // OUTPUT: <Buffer 40 20>
Meteor.js
var CRC = new Buffer([0x20,0x40]);
console.log(CRC.swap16()); // OUTPUT: TypeError: CRC.swap16 is not a function
有人可以帮助我吗?知道这可能是版本问题。但是暂时无法解决
还有办法得到这个东西运行流星吗?
Buffer.swap16()
方法已在 5.10.0 中添加,而 Meteor 使用 NodeJS 版本 4。
你可以从NodeJS source复制这个方法实现,它很简单(有小的修改):
function swap(b, n, m) {
const i = b[n];
b[n] = b[m];
b[m] = i;
}
Buffer.prototype.swap16 = function swap16() {
const len = this.length;
if (len % 2 !== 0) {
throw new RangeError('ERR_INVALID_BUFFER_SIZE', '16-bits');
}
for (var i = 0; i < len; i += 2) {
swap(this, i, i + 1);
}
return this;
};