2017-10-30 4 views
1

NodeJSでバッファスワップ関数をテストしましたが、Meteorプロジェクトでは機能しません。Buffer.swap16は関数ではありません

誰かが理由を教えてくれますか?

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 

誰かが私を助けてくださいことができます。それはおそらくバージョンの問題です。私は現時点でそれを解決することはできません。

流星でこのことを実行する方法もありますか?

答えて

1

Buffer.swap16()方法は流星がNodeJSバージョン4

を使用し、一方、あなたはNodeJS sourceからこのメソッドの実装をコピーすることができ、5.10.0で追加されました、それは(小さな変更で)非常に簡単です:

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; 
}; 
関連する問題