使用回调结果
本课属于 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 在线编辑器