Closed6
「JavaScript 第7版」を読む(16章:Node.js)
前回のスクラップの続き
process.argv
でコマンドライン引数を参照できる。1つ目はNodeの実行バイナリへのパス、2つ目はJavaScriptソースファイル、3つ目以降がコマンドライン引数になる。
console.log(process.argv);
実行例
$ node ./hello.js arg1 arg2
[
'/usr/local/nodejs/bin/node',
'/home/ec2-user/foo/hello.js',
'arg1',
'arg2'
]
ソースファイルに書かれているコードの実行が終わり、処理待ちのイベントがなくなり、新たに呼び出される可能性のあるイベントハンドラもなくなったときに、Nodeのプロセスが終了する。これは、ブラウザでのワーカースレッドと似ている気がする。
ES6のモジュール方式なのか、従来のNodeモジュール(CommonJS)なのかは、Nodeがソースコードを読み込む前に決定する必要がある。
拡張子が .mjs
または .cjs
であれば、拡張子に応じて決定される。
そうでない場合は package.json
を探し、もし見つかって type
プロパティが書かれていればそれに従う。
-
type: "module"
- ES6モジュール
-
type: "commonjs"
- CommonJSモジュール
設定が見つからなければ、NodeでデフォルトのCommonJSとみなす。
ES6モジュールのコードから import
を使って CommonJSモジュールを読み込むことはできる。
Nodeの非同期関数の多くはPromise以前からあるのでコールバックベースになっている。コールバック関数の引数の1つ目は、エラーメッセージかエラーに関するオブジェクトになっている。エラーが1つ目なのは、エラーチェックを省略されないようにするためである。
util.promisify
を使って、コールバックベースのAPIをPromiseベースに変換することができる。
Buffer
クラスはJavaScriptの型付き配列より以前に設計された。いまは型付き配列であるUint8Array
のサブクラスになっている。
このスクラップは2023/08/01にクローズされました