Node.js REPLの使用方法
node
コマンドは、Node.jsスクリプトを実行するために使用するコマンドです。
node script.js
実行するスクリプトや引数を指定せずにnode
コマンドを実行すると、REPLセッションが開始されます。
node
**注:**
REPL
は Read Evaluate Print Loop の略で、ユーザー入力として単一の式を受け取り、実行後に結果をコンソールに返すプログラミング言語環境(基本的にコンソールウィンドウ)です。REPLセッションは、簡単なJavaScriptコードをすばやくテストするのに便利な方法を提供します。
ターミナルで今すぐ試してみると、次のようになります。
❯ node
>
コマンドはアイドルモードのままになり、何か入力されるのを待ちます。
**ヒント:** ターミナルを開く方法がわからない場合は、「your-operating-systemでターミナルを開く方法」をGoogleで検索してください。
REPLは、より正確には、JavaScriptコードを入力するのを待っています。
シンプルに始めて、次を入力します。
> console.log('test')
test
undefined
>
最初の値であるtest
は、コンソールに出力するように指示した出力であり、次にundefined
が表示されます。これは、console.log()
を実行したときの戻り値です。Nodeはこのコード行を読み取り、評価し、結果を出力してから、さらにコード行を待つ状態に戻りました。セッションを終了するまで、REPLで実行するすべてのコードに対して、Nodeはこれら3つの手順をループします。それがREPLの名前の由来です。
Nodeは、指示することなく、JavaScriptコードの行の結果を自動的に出力します。たとえば、次の行を入力してEnterキーを押します。
> 5 === '5'
false
>
上記の2行の出力の違いに注意してください。Node REPLはconsole.log()
を実行した後にundefined
を出力しましたが、一方、5 === '5'
の結果だけを出力しました。前者はJavaScriptの単なるステートメントであり、後者は式であることに注意する必要があります。
場合によっては、テストするコードに複数行が必要になることがあります。たとえば、乱数を生成する関数を定義する場合、REPLセッションで次の行を入力してEnterキーを押します。
function generateRandom() {
...
Node REPLは、コードの入力がまだ完了していないことを十分に理解しており、さらにコードを入力するための複数行モードになります.それでは、関数の定義を完了してEnterキーを押してください。
function generateRandom() {
...return Math.random()
}
undefined
_
特殊変数
コードを入力した後に_
と入力すると、最後の操作の結果が出力されます。
上矢印キー
上
矢印キーを押すと、現在、さらには以前のREPLセッションで実行されたコード行の履歴にアクセスできます。
ドットコマンド
REPLには、すべてドット.
で始まる特別なコマンドがいくつかあります。それらは次のとおりです。
.help
: ドットコマンドのヘルプを表示します。.editor
: 複数行のJavaScriptコードを簡単に記述できるように、エディターモードを有効にします。このモードになったら、Ctrl-Dを入力して記述したコードを実行します。.break
: 複数行の式を入力しているときに、.breakコマンドを入力すると、それ以上の入力が中止されます。Ctrl-Cを押すのと同じです。.clear
: REPLコンテキストを空のオブジェクトにリセットし、現在入力中の複数行の式をクリアします。.load
: 現在の作業ディレクトリを基準としたJavaScriptファイルを読み込みます。.save
: REPLセッションで入力したすべてをファイルに保存します(ファイル名を指定します)。.exit
: replを終了します(Ctrl-Cを2回押すのと同じです)。
REPLは、.editor
を呼び出すことなく、複数行のステートメントを入力していることを認識しています.
たとえば、次のように反復を入力し始めるとします.
[1, 2, 3].forEach(num => {
enter
を押すと、REPLは3つのドットで始まる新しい行に移動し、そのブロックで作業を続行できることを示します.
... console.log(num)
... })
行末に.break
と入力すると、複数行モードが停止し、ステートメントは実行されません.
JavaScriptファイルからREPLを実行する
repl
を使用して、JavaScriptファイルにREPLをインポートできます.
const repl = require('node:repl');
repl変数を使用すると、さまざまな操作を実行できます。REPLコマンドプロンプトを開始するには、次の行を入力します.
repl.start();
コマンドラインでファイルを実行します.
node repl.js
REPLの開始時に表示される文字列を渡すことができます。デフォルトは '> '(末尾にスペース)ですが、カスタムプロンプトを定義できます.
// a Unix style prompt
const local = repl.start('$ ');
REPLの終了中にメッセージを表示できます.
local.on('exit', () => {
console.log('exiting repl');
process.exit();
});
replドキュメントで、REPLモジュールの詳細を読むことができます.