使用Node.js fs模块readFileSync读取text.txt文件时出现ENOENT错误的问题咨询
解决Node.js中readFileSync读取文件时的ENOENT错误
嘿,我之前也碰到过一模一样的问题,别慌,咱们一步步来排查解决:
先搞懂Node.js找文件的规则
当你用相对路径(比如"text.txt")调用readFileSync时,Node.js是从当前运行Node进程的工作目录去查找文件,而不是你的脚本文件所在的目录!你可以先在代码里加一行打印当前工作目录,看看是不是找错地方了:console.log(process.cwd()); // 输出当前Node进程的工作目录如果你的
text.txt和脚本不在同一个工作目录下,最稳妥的办法是用path模块拼接绝对路径,这样不管你在哪里运行脚本都不会出错:const fs = require("fs"); const path = require("path"); // __dirname 代表当前脚本文件所在的目录 const filePath = path.join(__dirname, "text.txt"); try { const text = fs.readFileSync(filePath, "utf-8"); console.log(text); } catch (err) { console.error("读取文件出错:", err); }仔细核对文件名的细节
别小看大小写和后缀名!比如在Linux/macOS系统里,Text.txt和text.txt是完全不同的文件;另外有时候文件管理器会隐藏后缀名,你看到的text可能实际是text.txt.txt,可以去文件属性里确认真实的文件名。手动确认文件位置
打开文件管理器,直接导航到你认为text.txt存在的文件夹,确认文件真的在那里——有时候可能误删、存错了文件夹,或者复制粘贴时出了问题。额外检查:权限问题(虽然这个错误更可能是找不到文件)
如果以上都没问题,可以确认一下你有没有读取该文件的权限,尤其是在Linux/macOS系统下,可能需要用chmod命令调整文件权限。
内容的提问来源于stack exchange,提问作者DAKSH YADAV
相关产品推荐
相关产品推荐

