ノードでは、バッファはメモリにバイナリ データを保存するために使用されます。バッファは、TCP ストリームまたはファイル ストリームを処理するときにキャッシュ領域として使用できます。特に、使用されるバイナリ データを保存するために使用されます。nodejs は、データ送信時刻に達していない場合、データは送信されるまでバッファに保存されます。
この記事の動作環境: Windows 10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。
Node アプリケーションでは、ネットワーク プロトコルの処理、データベースの操作、画像の処理、アップロードされたファイルの受信などを行う必要があります。ネットワーク ストリームの操作では、およびファイルを処理するには、大量のバイナリ データを処理する必要があり、バッファとはバイナリ データを格納するためにメモリ内に領域 (初回は 8KB に初期化) を開くことです。
処理中にデータ フローが発生します。上記の操作と、各データ フロー プロセス中に、データの最小量または最大量があります。
データがプロセスで消費されるよりも早く到着する場合、早く到着した少数のデータは、待機エリアで処理を待っていること。逆に、プロセスで消費されるデータよりもデータの到着が遅い場合は、先に到着したデータは、処理される前に一定量のデータが到着するまで待つ必要があります。バッファ (Buffer) を指します。これはコンピュータ内の小さな物理ユニットであり、通常はコンピュータの RAM にあります。
簡単に言えば、Nodejs はデータ送信の速度と到着時間を制御できません。データをいつ送信するかを決定します。送信時刻がまだ到着していない場合、データは送信されるまでバッファ、つまり RAM に置かれます。
前述のように、バッファが使用されます。バイナリ データを格納するためのものであり、その形式は配列として理解できます。配列項目の各要素はすべて 8 ビット バイナリ: 00000000 (1 バイト) を保存できます。
は使用される Buffer クラスを定義します。
TCPストリームやファイルストリームなどの画像処理を行う場合、バイナリデータを使用する必要があります。そのため、Node.js では、バイナリ データを格納するための専用のバッファ領域を作成するために使用される Buffer クラスが定義されています。
Buffer クラスの作成Node Buffer クラスはさまざまな方法で作成できます。
方法 1
長さ 10 バイトのバッファ インスタンスを作成します:
var buf = new Buffer(10);
方法 2
指定された配列からバッファ インスタンスを作成します:
var buf = new Buffer([10, 20, 30, 40, 50]);
方法 3
文字列を使用してバッファ インスタンスを作成します:
var buf = new Buffer("bianchengsanmei", "utf-8");
utf-8 はデフォルトのエンコード方法です。さらに、次のエンコードもサポートしています: "ascii "、" utf8"、"utf16le"、"ucs2"、"base64"、および "hex"。
推奨学習: 「
nodejs ビデオ チュートリアル以上がノードでのバッファの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。