我在节点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。
的同一文件夹中读取文件的文件但我不明白我做错了什么
答案 0 :(得分:17)
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')
我不确定您是如何运行代码的,因此我的示例可能无法在您的代码库中运行,但希望了解您出错的地方将有助于调试您的代码。