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 が返される点に注意してください。
-
lengthプロパティを使わずにノードリストから最後の要素を取得する方法【jQueryの:lastセレクタ】
JavaScriptでノードリストやDOM要素のコレクションから最後のアイテムを取得する場合、一般的には length プロパティで要素数を調べてインデックスを指定します。しかし、jQueryの :last セレクタを使えば、要素数を意識することなく、よりシンプルに最後の要素を取得できます。 サンプルとなるテーブル ここでは、次のようなHTMLテーブルを例に説明します。 <table id=demo border=1> <tr> <td>John</td> </tr> <tr> <td>David</td
-
HTML DOMのfirstChildプロパティとは?使い方と注意点を解説
HTML DOMのfirstChildプロパティは、特定のノードの最初の子ノードをノードオブジェクトとして返すために使用されます。返される内容は、最初の子ノードの種類に応じて、テキストノード・要素ノード・コメントノードのいずれかになります。なお、このプロパティは読み取り専用です。構文HTML DOM firstChildプロパティの基本構文は以下のとおりです。node.firstChildサンプルコードここで、firstChildプロパティの具体的な使用例を見てみましょう。<!DOCTYPE html> <html> <head> <script>