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

时间:2018-01-26 21:17:18

标签: javascript json

我在节点Js工作。 当我试图加载一个文件:moviedata.json,用这行:

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

节目:

  

错误:ENOENT:没有这样的文件或目录,打开'./moviedata.json'       在错误(本机)       在Object.fs.openSync(fs.js:640:18)       at 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)       at 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。

的同一文件夹中读取文件的文件

enter image description here

但我不明白我做错了什么

1 个答案:

答案 0 :(得分:17)

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

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

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

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

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