ノードバッファとは何か、それらが何に使用されるか、それらを使用する方法を学ぶ
バッファとは何ですか?
バッファはメモリの領域です。 JavaScript開発者はこの概念に精通しておらず、毎日メモリと対話するC、C ++、またはGo開発者(またはシステムプログラミング言語を使用するプログラマー)よりもはるかに少ないです。
これは、V8 JavaScriptエンジンの外部に割り当てられた固定サイズのメモリチャンク(サイズ変更できません)を表します。
バッファは整数の配列のように考えることができ、それぞれが1バイトのデータを表します。
それはノードによって実装されますバッファクラス。
なぜバッファが必要なのですか?
バッファは、従来はバイナリではなく文字列のみを処理していたエコシステムで、開発者がバイナリデータを処理するのを支援するために導入されました。
バッファはと深く関連していますストリーム。ストリームプロセッサは、ダイジェストできるよりも速くデータを受信すると、データをバッファに入れます。
バッファの単純な視覚化は、YouTubeビデオを視聴していて、赤い線が視覚化ポイントを超えている場合です。つまり、データを表示しているよりも速くダウンロードし、ブラウザがバッファリングします。
バッファの作成方法
バッファは、を使用して作成されますBuffer.from()
、Buffer.alloc()
、およびBuffer.allocUnsafe()
メソッド。
const buf = Buffer.from('Hey!')
Buffer.from(array)
Buffer.from(arrayBuffer[, byteOffset[, length]])
Buffer.from(buffer)
Buffer.from(string[, encoding])
サイズを渡してバッファを初期化することもできます。これにより、1KBのバッファーが作成されます。
const buf = Buffer.alloc(1024)
//or
const buf = Buffer.allocUnsafe(1024)
バッファの使用
バッファの内容にアクセスする
バイトの配列であるバッファには、配列のようにアクセスできます。
const buf = Buffer.from('Hey!')
console.log(buf[0]) //72
console.log(buf[1]) //101
console.log(buf[2]) //121
これらの番号は、バッファ位置の文字を識別するUnicodeコードです(H => 72、e => 101、y => 121)
を使用して、バッファの全内容を印刷できます。toString()
方法:
console.log(buf.toString())
サイズを設定する数値でバッファを初期化すると、空のバッファではなく、ランダムデータを含む事前に初期化されたメモリにアクセスできることに注意してください。
バッファの長さを取得する
使用length
プロパティ:
const buf = Buffer.from('Hey!')
console.log(buf.length)
バッファの内容を繰り返し処理します
const buf = Buffer.from('Hey!')
for (const item of buf) {
console.log(item) //72 101 121 33
}
バッファの内容を変更する
を使用して、データの文字列全体をバッファに書き込むことができます。write()
方法:
const buf = Buffer.alloc(4)
buf.write('Hey!')
配列構文を使用してバッファーにアクセスできるのと同じように、同じ方法でバッファーの内容を設定することもできます。
const buf = Buffer.from('Hey!')
buf[1] = 111 //o
console.log(buf.toString()) //Hoy!
バッファをコピーする
バッファのコピーは、copy()
方法:
const buf = Buffer.from('Hey!')
let bufcopy = Buffer.alloc(4) //allocate 4 bytes
buf.copy(bufcopy)
デフォルトでは、バッファ全体をコピーします。さらに3つのパラメーターを使用して、開始位置、終了位置、および新しいバッファー長を定義できます。
const buf = Buffer.from('Hey!')
let bufcopy = Buffer.alloc(2) //allocate 2 bytes
buf.copy(bufcopy, 0, 2, 2)
bufcopy.toString() //'He'
バッファーをスライスする
バッファの部分的な視覚化を作成する場合は、スライスを作成できます。スライスはコピーではありません。元のバッファは依然として信頼できる情報源です。それが変わると、スライスも変わります。
使用slice()
それを作成する方法。最初のパラメーターは開始位置であり、オプションの2番目のパラメーターを終了位置で指定できます。
const buf = Buffer.from('Hey!')
buf.slice(0).toString() //Hey!
const slice = buf.slice(0, 2)
console.log(slice.toString()) //He
buf[1] = 111 //o
console.log(slice.toString())
私の無料ダウンロードNode.jsハンドブック
その他のノードチュートリアル:
- npmパッケージマネージャーの紹介
- Node.jsの紹介
- Axiosを使用したHTTPリクエスト
- Node.jsアプリをホストする場所
- Node.jsを使用してGoogleAnalyticsAPIと対話します
- npxノードパッケージランナー
- package.jsonガイド
- npmはどこにパッケージをインストールしますか?
- Node.jsを更新する方法
- npmを使用してインストールされたパッケージを使用または実行する方法
- package-lock.jsonファイル
- npmを使用したセマンティックバージョニング
- node_modulesフォルダーをGitにコミットする必要がありますか?
- すべてのノードの依存関係を最新バージョンに更新します
- Node.jsを使用したJSONの解析
- npmパッケージのインストール済みバージョンを検索します
- Node.jsストリーム
- 古いバージョンのnpmパッケージをインストールします
- ノード内の現在のフォルダを取得します
- ノードにオブジェクトを記録する方法
- エクスポートを使用してノードファイルから機能を公開します
- ノードとブラウザの違い
- ノードを使用してHTTPPOSTリクエストを作成します
- Nodeを使用してHTTPリクエストの本文データを取得する
- ノードバッファ
- Node.jsの簡単な歴史
- Node.jsをインストールする方法
- Nodeを使用するには、どのくらいのJavaScriptを知っている必要がありますか?
- Node.jsREPLの使用方法
- ノード、コマンドラインから引数を受け入れる
- ノードを使用してコマンドラインに出力する
- ノードのコマンドラインからの入力を受け入れる
- `npmアンインストール`でnpmパッケージをアンインストールする
- npmグローバルまたはローカルパッケージ
- npmの依存関係とdevDependencies
- Node.jsイベントループ
- process.nextTick()を理解する
- setImmediate()を理解する
- ノードイベントエミッター
- HTTPサーバーを構築する
- ノードでHTTPリクエストを行う
- Nodefsモジュール
- Axiosを使用したノードでのHTTPリクエスト
- Nodeでファイルを読み取る
- ノードファイルパス
- Nodeを使用したファイルの書き込み
- ノードファイルの統計
- ノードでのファイル記述子の操作
- ノード内のフォルダーの操作
- ノードパスモジュール
- ノードhttpモジュール
- Node.jsでのWebSocketの使用
- MySQLとNodeの操作の基本
- Node.jsでのエラー処理
- パグガイド
- Node.jsから環境変数を読み取る方法
- Node.jsプログラムを終了する方法
- Nodeosモジュール
- ノードイベントモジュール
- ノード、開発と本番の違い
- Node.jsにファイルが存在するかどうかを確認する方法
- Node.jsで空のファイルを作成する方法
- Node.jsでファイルを削除する方法
- Node.jsを使用してファイルの最終更新日を取得する方法
- JavaScriptで日付が今日かどうかを判断する方法
- Node.jsのファイルにJSONオブジェクトを書き込む方法
- 次のプロジェクトでNode.jsを使用する必要があるのはなぜですか?
- 任意のフォルダからWebサーバーを実行します
- Node.jsでMongoDBを使用する方法
- ChromeDevToolsを使用してNode.jsアプリをデバッグします
- pnpmとは何ですか?
- Node.jsランタイムv8オプションリスト
- npm使用時の「書き込みアクセスの欠落」エラーを修正する方法
- Node.jsでESモジュールを有効にする方法
- Node.jsを使用して子プロセスを生成する方法
- Expressで解析されたボディと生のボディの両方を取得する方法
- Node.jsでファイルのアップロードを処理する方法
- ノードモジュールのピア依存関係とは何ですか?
- Node.jsでCSVファイルを作成する方法
- Node.jsでCSVファイルを読み取る方法
- ノードコアモジュール
- Node.jsを使用して一度に複数のフォルダー番号をインクリメントする
- キャンバスをデータURLに印刷する方法
- Node.jsとCanvasを使用して画像を作成および保存する方法
- Node.jsを使用して画像をダウンロードする方法
- Node.jsでファイルの名前を一括変更する方法
- ノード内のフォルダ内のすべてのファイルの名前を取得する方法
- promiseを使用し、Node.jsコールバックベースの関数で待機する方法
- npmパッケージをローカルでテストする方法
- 実行時に現在のNode.jsバージョンを確認する方法
- Sequelizeを使用してPostgreSQLと対話する方法
- Node.jsを使用してHTMLページを提供する
- Node.jsの `util.pumpは関数ではありません`エラーを解決する方法