Node.js中filehandle.readLines()调用时报错TypeError: console.log(...) is not a function
解决
filehandle.readLines()中TypeError: console.log(...) is not a function的问题 错误核心:语法格式错误
你的代码里立即执行异步函数的写法存在语法错误,多写了一个闭合括号,导致JS解析逻辑混乱,抛出了误导性的错误提示。原代码中的写法:
async () => { // 函数内容 })();
正确的立即执行异步函数需要用括号包裹整个函数体后再调用:
(async () => { // 函数内容 })();
修正后的完整代码
const { open } = require("node:fs/promises"); (async () => { try { const file = await open("/Users/max/Documents/node-fs-fun/input.txt"); for await (const line of file.readLines()) { console.log(line); } // 操作完成后关闭文件句柄 await file.close(); } catch (err) { console.error("文件操作出错:", err); } })();
额外排查要点
- 确认Node.js版本:
filehandle.readLines()是Node.js v18.11.0(稳定版)或v16.17.0(维护版)之后新增的API,版本过低会导致方法不存在,进而引发异常。可通过node -v查看当前版本,版本不足建议升级。 - 验证文件路径与权限:确保目标文件路径正确,且Node进程拥有该文件的读取权限。
- 添加错误捕获:用
try/catch包裹异步操作,能精准定位文件打开、读取阶段的实际错误,避免误导性报错干扰排查。
内容的提问来源于stack exchange,提问作者infinitemax
相关产品推荐
相关产品推荐

