コールバックの結果を使う
CoddyのNode.jsジャーニー「Node.jsの基礎」セクションの一部。レッスン 17/33。
ファイルの読み込みは、プログラムの次の行がすでに実行された後に完了することがあります。コールバックとは、後で呼び出してもらうために別の関数に渡す関数です。readFileは、ファイルの準備ができるとあなたの関数を呼び出します。最初にエラーを、次にファイルのテキストを渡します。
readFile('greeting.txt', 'utf8', (err, text) => {
if (err) return;
console.log(text);
});テキストが必要な処理は、この関数の中に書きます。関数の外では、まだテキストは届いていません。最初に用意されているコードには、インポートとエラー処理の分岐が含まれています。成功時の結果の使い方に集中しましょう。
チャレンジ
簡単まずpractice.jsを実行します。最後の行が実行される時点でtextがまだ未定義のため、ファイルの読み込みが完了しておらず、失敗します。
ファイルのテキストが必要な処理を、読み込みが完了した時点に移動します。エラー処理の分岐は残したまま、内容を大文字で出力します。不要になったら、外側のtext変数を削除します。引数を指定しない場合はBUY MILKを、other.txtを指定した場合はCALL ADAを期待します。
自分で試してみよう
import { readFile } from 'node:fs';
const file = process.argv[2] ?? 'note.txt';
let text;
readFile(file, 'utf8', (err, contents) => {
if (err) return;
text = contents;
});
console.log(text.toUpperCase());
Node.jsの基礎のすべてのレッスン
自分で練習してみよう: Expressプレイグラウンド