ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js バッファー モジュールのいくつかの重要なメソッドについて話しましょう
この記事では、Node.js バッファーの完全なガイドを共有し、Node バッファー (Buffer) モジュールのいくつかの重要なメソッドについて説明します。皆様のお役に立てれば幸いです。
バイナリ ストリームは、バイナリ データの大規模なコレクションです。バイナリ ストリームのサイズは通常非常に大きいため、バイナリ ストリームは通常一緒に発送されず、発送前に小さなチャンクに分割され、1 つずつ送信されます。
データ処理ユニットが他のデータ ストリームの受信を一時的に停止すると、データ処理ユニットがさらにデータを受信できるようになるまで、残りのデータがキャッシュに保持されます。
Node.js サーバーは通常、ファイル システムでの読み取りと書き込みを行う必要があり、ファイルは実際にはストレージ レベルのバイナリ ストリームです。さらに、Node.js は TCP ストリームでも使用できるため、TCP ストリームで信頼性の高いエンドツーエンドのバイト ストリームを提供し、信頼性の低いインターネット ネットワーク上での通信を確保できます。
受信機に送信されたデータ ストリームは、受信機が処理するデータをさらに受信する準備ができるまでバッファリングされます。これは、Node.js の一時データ部分が行うこと、つまり V8 エンジンの外部でバイナリ データを管理および保存することです。
バッファー (Buffer
) を使用するさまざまな方法を詳しく見ていき、バッファーについてさらに学び、Node.js プログラムでバッファーを使用する方法を学びましょう。
Node.js バッファ モジュールの最大の利点は、Node.js に組み込まれていることです。使いたい場所ならどこでも使えます。
いくつかの重要な Node.js バッファー モジュール メソッドを見てみましょう。
Buffer.alloc()
このメソッドは新しいバッファを作成しますが、割り当てられるサイズは固定されていません。このメソッドを呼び出すと、サイズ (バイト単位) を自分で割り当てることができます。
const buf = Buffer.alloc(6) // 这会创建一个 6 字节的缓冲区 console.log(buf) // <Buffer 00 00 00 00 00 00>
Buffer.byteLength()
バッファの長さを取得したい場合は、Buffer.byteLength を呼び出すだけです。 ()### します。
var buf = Buffer.alloc(10) var buffLen = Buffer.byteLength(buf) // 检查缓冲区长度 console.log(buffLen) // 10
Buffer.compare()
Buffer.compare() を使用すると、2 つのバッファを比較できます。このメソッドの戻り値は、
-1、
0、
1 のいずれかです。
buf.compare(otherBuffer); この呼び出しは数値
-1、
0、
1# を返します。 ##、otherBuffer
の前、後、または同じ buf
に対応します。 <pre class="brush:js;toolbar:false;">var buf1 = Buffer.from(&#39;Harsh&#39;)
var buf2 = Buffer.from(&#39;Harsg&#39;)
var a = Buffer.compare(buf1, buf2)
console.log(a) // 这会打印 0
var buf1 = Buffer.from(&#39;a&#39;)
var buf2 = Buffer.from(&#39;b&#39;)
var a = Buffer.compare(buf1, buf2)
console.log(a) // 这会打印 -1
var buf1 = Buffer.from(&#39;b&#39;)
var buf2 = Buffer.from(&#39;a&#39;)
var a = Buffer.compare(buf1, buf2)
console.log(a) // 这会打印 1</pre>
Buffer.concat() 名前が示すように、この関数を使用して 2 つのバッファを連結できます。もちろん、文字列と同じように、3 つ以上のバッファを連結することもできます。
var buffer1 = Buffer.from('x') var buffer2 = Buffer.from('y') var buffer3 = Buffer.from('z') var arr = [buffer1, buffer2, buffer3] console.log(arr) /* buffer, !concat [ <Buffer 78>, <Buffer 79>, <Buffer 7a> ] */ // 通过 Buffer.concat 方法连接两个缓冲区 var buf = Buffer.concat(arr) console.log(buf) // <Buffer 78 79 7a> concat successful
Buffer.entries()##Buffer.entries()
var buf = Buffer.from('xyz') for (a of buf.entries()) { console.log(a) /* 这个会在控制台输出一个有缓冲区位置与内容的字节的数组 [ 0, 120 ][ 1, 121 ][ 2, 122 ] */ }
Buffer.fill()Buffer.fill()
const b = Buffer.alloc(10).fill('a') console.log(b.toString()) // aaaaaaaaaa
Buffer.includes()文字列と同様に、バッファに値があるかどうかを確認します。これは、Buffer.includes()
true または
false) を返します。
const buf = Buffer.from('this is a buffer') console.log(buf.includes('this')) // true console.log(buf.includes(Buffer.from('a buffer example'))) // false
Buffer.isEncoding()バイナリ ファイルはエンコードする必要があることがわかっているので、データ型かどうかを確認したい場合は、文字エンコーディングをサポートしていますが、それについて何ができるでしょうか? Buffer.isEncoding()
true が返されます。
console.log(Buffer.isEncoding('hex')) // true console.log(Buffer.isEncoding('utf-8')) // true console.log(Buffer.isEncoding('utf/8')) // false console.log(Buffer.isEncoding('hey')) // false
Buffer.slice()buf.slice()
var a = Buffer.from('uvwxyz'); var b = a.slice(2, 5); console.log(b.toString()); // wxy
Buffer.swapX()Buffer.swapX()
Buffer.swapX() (
X は 16、32、64) を使用して、16 ビット、32 ビット、および 64 ビットのバッファー オブジェクトのバイト順序を交換します。
const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]) console.log(buf1) // <Buffer 01 02 03 04 05 06 07 08> // 交换 16 位字节顺序 buf1.swap16() console.log(buf1) // <Buffer 02 01 04 03 06 05 08 07> // 交换 32 位字节顺序 buf1.swap32() console.log(buf1) // <Buffer 03 04 01 02 07 08 05 06> // 交换 64 位字节顺序 buf1.swap64() console.log(buf1) // <Buffer 06 05 08 07 02 01 04 03>
Buffer.json()如果我们需要进一步了解并使用 Node.js 的缓冲区,我们需要对缓冲区以及 Node.js 缓冲区的工作原理有更扎实的基础知识。我们还应该了解为什么我们需要使用 Node.js 缓冲区和各种 Node.js 缓冲区方法的使用。 更多node相关知识,请访问:nodejs 教程!!バッファから JSON オブジェクトを作成するのに役立ち、このメソッドは JSON バッファを返します。物体 、###
const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.log(buf.toJSON());
// {"type":"Buffer", data:[1, 2, 3, 4, 5, 6, 7, 8]}
结论
以上がNode.js バッファー モジュールのいくつかの重要なメソッドについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。