You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用fs.readFileSync读取文件遇ENOENT错误,求排查解决

问题排查与解决

从报错信息来看,Node.js无法找到你指定的文件路径,结合你的调试信息,重点排查以下几点:

1. 确认文件的真实位置

你提到文件路径是/src/files/2022.json,但报错显示尝试访问的是/Users/MYNAME/Dropbox/Mac/Documents/projects/checker-be/src/files/2022.json。请在终端中进入项目根目录(即process.cwd()输出的路径),执行以下命令验证文件是否存在:

ls -la src/files/

如果返回"No such file or directory",说明文件不在src目录下的files文件夹里,大概率是直接放在项目根目录的files文件夹中。此时执行:

ls -la files/

若能看到2022.json,就说明路径写错了。

2. 修正路径写法

  • 如果文件在项目根目录的files文件夹下,用以下代码读取:
    fs.readFileSync(path.join(process.cwd(), 'files/2022.json'), {encoding:'utf8', flag:'r'});
    
    或者基于__dirname的写法:
    fs.readFileSync(path.join(__dirname, '../../files/2022.json'), {encoding:'utf8', flag:'r'});
    
  • 如果文件确实在src/files下,但终端命令显示存在,那检查文件名是否有拼写错误(比如大小写、隐藏后缀,比如实际是2022.json.txt但系统隐藏了后缀)。

3. 其他可能的原因

  • 若你是在构建后的环境运行代码,检查打包配置是否将files文件夹复制到了构建目录中,否则构建后找不到源文件。
  • 极少数情况是文件权限问题,可执行chmod 644 目标文件路径赋予可读权限。

内容的提问来源于stack exchange,提问作者JohnF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:45:50