2017-10-30 7 views
1

Ich habe einige Puffer-Swap-Funktion in NodeJS getestet, aber in meinem Meteor-Projekt funktioniert es nicht.Buffer.swap16 ist keine Funktion

Kann mir jemand den Grund sagen?

NodeJS:

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 

Kann mir bitte jemand helfen. In wissen, es ist vielleicht ein Versionsproblem. aber ich kann es im Moment nicht lösen.

Gibt es auch eine Möglichkeit, dieses Ding mit Meteor laufen zu lassen?

Antwort

1

Buffer.swap16() Methode wurde in 5.10.0 hinzugefügt, während Meteor NodeJS Version 4.

Sie verwendet diese Methode Implementierung von NodeJS source kopieren, es ist ganz einfach (mit kleinen Änderungen):

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; 
};