Node.js を使用してコマンドラインに出力する

console モジュールを使用した基本的な出力

Node.js は、コマンドラインと対話するための非常に便利な方法を多数提供する console モジュールを提供しています。

これは基本的に、ブラウザで見られる console オブジェクトと同じです。

最も基本的で最もよく使われるメソッドは console.log() で、渡された文字列をコンソールに出力します。

オブジェクトを渡すと、それを文字列としてレンダリングします。

console.log には複数の変数を渡すことができます。例えば、

const  = 'x';
const  = 'y';

.(, );

とすると、Node.js は両方を出力します。

また、変数とフォーマット指定子を渡すことで、きれいなフレーズを整形することもできます。

例:

.('My %s has %d ears', 'cat', 2);
  • %s 変数を文字列としてフォーマットします
  • %d 変数を数値としてフォーマットします
  • %i 変数を整数部のみとしてフォーマットします
  • %o 変数をオブジェクトとしてフォーマットします

.('%o', );

コンソールをクリアする

console.clear() はコンソールをクリアします(この動作は使用するコンソールによって異なる場合があります)

要素を数える

console.count() は便利なメソッドです。

次のコードを見てみましょう

const  = 1;
const  = 2;
const  = 3;

.(
  'The value of x is ' +  + ' and has been checked .. how many times?'
);

.(
  'The value of x is ' +  + ' and has been checked .. how many times?'
);

.(
  'The value of y is ' +  + ' and has been checked .. how many times?'
);

console.count() は、文字列が出力された回数を数え、その隣にカウント数を表示します

りんごとオレンジを数えることができます

const  = ['orange', 'orange'];
const  = ['just one apple'];

.( => {
  .();
});
.( => {
  .();
});

カウントをリセットする

console.countReset() メソッドは、console.count() で使用されるカウンターをリセットします。

これを実証するために、りんごとオレンジの例を使用します。

const  = ['orange', 'orange'];
const  = ['just one apple'];

.( => {
  .();
});
.( => {
  .();
});

.('orange');

.( => {
  .();
});

console.countReset('orange') の呼び出しが、値のカウンターをゼロにリセットしていることに注目してください。

関数のコールスタックトレースを出力すると便利な場合があります。例えば、「コードのその部分にどうやって到達したのか?」という問いに答えるためです。

これは console.trace() を使って行うことができます

const  = () => .();
const  = () => ();
();

これによりスタックトレースが出力されます。これを Node.js REPL で試した場合の出力は次のとおりです

Trace
    at function2 (repl:1:33)
    at function1 (repl:1:25)
    at repl:1:1
    at ContextifyScript.Script.runInThisContext (vm.js:44:33)
    at REPLServer.defaultEval (repl.js:239:29)
    at bound (domain.js:301:14)
    at REPLServer.runBound [as eval] (domain.js:314:12)
    at REPLServer.onLine (repl.js:440:10)
    at emitOne (events.js:120:20)
    at REPLServer.emit (events.js:210:7)

経過時間を計算する

time()timeEnd() を使って、関数が実行にかかる時間を簡単に計算できます

const  = () => .('test');
const  = () => {
  .('doSomething()');
  // do something, and measure the time it takes
  ();
  .('doSomething()');
};
();

stdout と stderr

見てきたように、console.log はコンソールにメッセージを出力するのに最適です。これは標準出力、または stdout と呼ばれます。

console.errorstderr ストリームに出力します。

これはコンソールに表示されますが、通常の出力とは別に処理することができます。

出力に色を付ける

: このリソースのこの部分は、styleText が「開発中」として記載されているバージョン 22.11 を対象に設計されています。

多くの場合、ターミナルで素敵な出力を得るために、特定のテキストを貼り付けたくなることがあるでしょう。

node:util モジュールには styleText 関数が提供されています。その使い方を見ていきましょう。

まず、node:util モジュールから styleText 関数をインポートする必要があります

import {  } from 'node:util';

そして、それを使ってテキストを装飾できます

.(
  styleText(['red'], 'This is red text ') +
    styleText(['green', 'bold'], 'and this is green bold text ') +
    'this is normal text'
);

最初の引数はスタイルの配列で、2番目の引数は装飾したいテキストです。ドキュメントを読むことをお勧めします