JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

Node.jsのwritable.writableObjectModeプロパティとは?使い方とサンプルコードを解説


writable.writableObjectMode プロパティは、対象の書き込み可能(Writable)ストリームに設定された objectMode の状態を取得するために使用します。オブジェクトモードが有効になっていれば true、そうでない場合は false が返ります。

オブジェクトモードを有効にすると、Buffer や文字列に加えて、任意の JavaScript オブジェクトをそのままストリームに書き込めるようになります。構造化されたデータを扱いたい場合などに便利です。

構文

writable.writableObjectMode

実行手順

まず「writableObjectMode.js」という名前のファイルを作成し、以下のコードスニペットをコピーしてください。ファイル作成後、次のコマンドでコードを実行します。

node writableObjectMode.js

例1:objectMode を true に設定した場合

writableObjectMode.js

// writable.writableObjectMode プロパティの動作を確認するプログラム
// stream モジュールを読み込む
const stream = require('stream');

// objectMode を true に設定して書き込み可能なストリームを作成
const writable = new stream.Writable({
  objectMode: true,
  // ストリームからデータを受け取って処理する write 関数
  write: function(chunk, encoding, next) {
    // データチャンクを文字列に変換して表示
    console.log(chunk.toString());
    next();
  }
});

// データを書き込む
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');

// writableObjectMode の値を出力
console.log(writable.writableObjectMode == true);

出力結果

C:\home\node>> node writableObjectMode.js
Welcome to TutorialsPoint !
SIMPLY LEARNING
true

コンストラクタのオプションで objectMode: true を明示的に指定しているため、writableObjectMode プロパティは true を返します。

例2:objectMode を指定しない場合(デフォルト)

続いて、もう一つの例を見てみましょう。今度は objectMode を指定せずにストリームを作成しています。

// writable.writableObjectMode プロパティの動作を確認するプログラム
// stream モジュールを読み込む
const stream = require('stream');

// 書き込み可能なストリームを作成(objectMode は未指定)
const writable = new stream.Writable({
  // ストリームからデータを受け取って処理する write 関数
  write: function(chunk, encoding, next) {
    // データチャンクを文字列に変換して表示
    console.log(chunk.toString());
    next();
  }
});

// データを書き込む
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');

// writableObjectMode の値を出力
console.log(writable.writableObjectMode);

出力結果

C:\home\node>> node writableObjectMode.js
Welcome to TutorialsPoint !
SIMPLY LEARNING
undefined

デフォルト値は undefined です。つまり、コンストラクタで objectMode を明示的に設定しない限り、オブジェクトモードは有効になりません。なお、新しいバージョンの Node.js では false が返される点に注意してください。

  1. lengthプロパティを使わずにノードリストから最後の要素を取得する方法【jQueryの:lastセレクタ】

    JavaScriptでノードリストやDOM要素のコレクションから最後のアイテムを取得する場合、一般的には length プロパティで要素数を調べてインデックスを指定します。しかし、jQueryの :last セレクタを使えば、要素数を意識することなく、よりシンプルに最後の要素を取得できます。 サンプルとなるテーブル ここでは、次のようなHTMLテーブルを例に説明します。 <table id=demo border=1> <tr> <td>John</td> </tr> <tr> <td>David</td

  2. HTML DOMのfirstChildプロパティとは?使い方と注意点を解説

    HTML DOMのfirstChildプロパティは、特定のノードの最初の子ノードをノードオブジェクトとして返すために使用されます。返される内容は、最初の子ノードの種類に応じて、テキストノード・要素ノード・コメントノードのいずれかになります。なお、このプロパティは読み取り専用です。構文HTML DOM firstChildプロパティの基本構文は以下のとおりです。node.firstChildサンプルコードここで、firstChildプロパティの具体的な使用例を見てみましょう。<!DOCTYPE html> <html> <head> <script>