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

Dan*_*TIZ 5 javascript json

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

var allMovies = JSON.parse(fs.readFileSync('moviedata.json', 'utf8'));
Run Code Online (Sandbox Code Playgroud)

显示:

错误:ENOENT:没有这样的文件或目录,在Object.fs.readFileSync(fs.js:508)的Object.fs.openSync(fs.js:640:18)的Error(native)处打开'./moviedata.json' :33)at Object.(/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)位于Module.runMain的Function.Module._load(module.js:438:3)的.js:604:10)

错误:ENOENT:没有这样的文件或目录,在Object.fs.readFileSync的Object.fs.openSync(fs.js:640:18)处以错误(本机)打开'moviedata.json'(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)位于Module.runMain的Function.Module._load(module.js:438:3)的.js:604:10)

该文件在js的同一文件夹中读取.

在此输入图像描述

但我不明白我做错了什么

小智 19

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

假设你跑node aws/MoviesLoadData.js/Users/dortiz/Documents/NodeJS/pruebas/zw, fs.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')
Run Code Online (Sandbox Code Playgroud)

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