我在节点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)
我不确定您是如何运行代码的,因此我的示例可能无法在您的代码库中运行,但希望了解您出错的位置将有助于调试代码.
| 归档时间: |
|
| 查看次数: |
19329 次 |
| 最近记录: |