错误:ENOENT:没有这样的文件或目录,打开“/moviedata.json”

Posted

技术标签:

【中文标题】错误:ENOENT:没有这样的文件或目录,打开“/moviedata.json”【英文标题】:Error: ENOENT: no such file or directory, open '/moviedata.json' 【发布时间】:2018-07-06 06:48:24 【问题描述】:

我在节点 Js 中工作。 当我尝试加载文件时:moviedata.json,使用以下行:

var allMovies = JSON.parse(fs.readFileSync('moviedata.json', 'utf8'));

演出:

错误:ENOENT:没有这样的文件或目录,打开“./moviedata.json” 在错误(本机) 在 Object.fs.openSync (fs.js:640:18) 在 Object.fs.readFileSync (fs.js:508:33) 在对象。 (/Users/dortiz/Documents/NodeJS/pruebas/zw/aws/MoviesLoadData.js:13:31) 在 Module._compile (module.js:570:32) 在 Object.Module._extensions..js (module.js:579:10) 在 Module.load (module.js:487:32) 在 tryModuleLoad (module.js:446:12) 在 Function.Module._load (module.js:438:3) 在 Module.runMain (module.js:604:10)

错误:ENOENT:没有这样的文件或目录,打开“moviedata.json” 在错误(本机) 在 Object.fs.openSync (fs.js:640:18) 在 Object.fs.readFileSync (fs.js:508:33) 在对象。 (/Users/dortiz/Documents/NodeJS/pruebas/zw/aws/MoviesLoadData.js:13:31) 在 Module._compile (module.js:570:32) 在 Object.Module._extensions..js (module.js:579:10) 在 Module.load (module.js:487:32) 在 tryModuleLoad (module.js:446:12) 在 Function.Module._load (module.js:438:3) 在 Module.runMain (module.js:604:10)

要读取的文件在与 js 相同的文件夹中。

但我不明白我做错了什么

【问题讨论】:

fs.readFileSync('moviedata.json', 'utf8') 将在同一文件夹位置查找文件 __dirname + '/moviedata.json' 感谢 __dirname 的工作 你必须输入正确的路径 【参考方案1】:

fs.readFileSync('moviedata.json', 'utf8') 将在您运行应用程序的目录中查找moviedata.json,而不是在您的MoviesLoadData.js 文件所在的目录中。

假设您从/Users/dortiz/Documents/NodeJS/pruebas/zw 运行node aws/MoviesLoadData.jsfs.readFileSync('moviedata.json', 'utf8') 会在/Users/dortiz/Documents/NodeJS/pruebas/zw 中寻找moviedata.json,而不是在/Users/dortiz/Documents/NodeJS/pruebas/zw/aws

如果您要使用我给定的示例运行脚本,则需要预先添加 json 文件的路径以正确引用它。

fs.readFileSync(__dirname + '/moviedata.json', 'utf8')

我不确定您是如何运行代码的,因此我的示例可能无法在您的代码库中运行,但希望了解您出错的地方将有助于调试您的代码。

【讨论】:

以上是关于错误:ENOENT:没有这样的文件或目录,打开“/moviedata.json”的主要内容,如果未能解决你的问题,请参考以下文章

错误:ENOENT:没有这样的文件或目录,打开“/moviedata.json”

Heroku CLI 登录失败并出现错误“错误:ENOENT:没有这样的文件或目录,打开 'H:/_netrc'”

importSchema GraphQL 错误:ENOENT:没有这样的文件或目录,打开“./schema.graphql”

电子应用程序错误:ENOENT:没有这样的文件或目录,打开“/.env”

将jsx文件转换为tsx后Reactjs“错误:ENOENT:没有这样的文件或目录,打开..”

Android Studio 3.6.3 - 拍照时相机错误:打开失败:ENOENT(没有这样的文件或目录)