アジェンダ
以下のコードは、Node.jsを使って標準入力(キーボードなどからの入力)を読み取るために使用されるコードです。
const input = require("fs").readFileSync("/dev/stdin", "utf8");
このNode.jsの標準入力の書き方について分解してまとめます。
require("fs")
require は、Node.jsでモジュール(追加の機能)を読み込むための関数です。
"fs" は、ファイルシステム(File System)の略で、ファイルやディレクトリを操作するためのモジュールです。
readFileSync("/dev/stdin", "utf8")
readFileSync
readFileSync は、ファイルを同期的(プログラムが次に進む前に、完全に読み取る)に読み取る関数です。つまり、ファイルの読み取りが完了するまで他の処理はブロックされます。
"/dev/stdin"
"/dev/stdin" は、UNIX系のシステム(LinuxやMacなど)で使われる特別なファイルで、標準入力を指します。つまり、ここからデータを読み取ることになります。Windows環境では、通常 process.stdin を使用します。
"utf8"
"utf8" は、読み取るデータの文字エンコーディングを指定します。UTF-8は多くの文字(日本語を含む)を扱えるエンコーディング方式です。
全体を合わせると
const input = require("fs").readFileSync("/dev/stdin", "utf8");
このコードは、fs モジュールを使って、標準入力からUTF-8形式でデータを読み取り、その内容を input という変数に格納しています。
まとめ
-
require("fs"): ファイルシステムモジュールを読み込む -
readFileSync: ファイルを同期的に読み取る関数 -
"/dev/stdin": 標準入力を指すファイルパス -
"utf8": 文字エンコーディング方式