我需要从一个.json文件中获取一些数据,但我得到了这个错误:
Error: ENOENT: no such file or directory, open '../Jsons/eshop.json'
at Object.openSync (node:fs:585:3)
at Object.readFileSync (node:fs:453:35)
at Object.execute (C:\Users\Pooyan\Desktop\PDM Bot Main\commands\shop.js:9:24)
at module.exports (C:\Users\Pooyan\Desktop\PDM Bot Main\events\guild\message.js:114:15)
errno: -4058,
syscall: 'open',
code: 'ENOENT',
path: '../Jsons/eshop.json'
}
我的代码:
let shop_data = JSON.parse(Buffer.from(fs.readFileSync('../Jsons/eshop.json')).toString());
let index = (args[0] || "1");
let page = shop_data.pages[index];
我认为这就是您所需要的全部内容,但是如果需要任何其他代码,请注解它。我正在使用discord.js v13和node.js 16
3条答案
按热度按时间cl25kdpy1#
问题在于道路。看来路径是无效的给定
eshop.json
文件或可能有任何拼写错误的路径。fs.readFileSync
采用相对路径:z31licg02#
您需要使用pathmodule和join the foldernames来定义json文件的位置。
让,数据在下面的目录。(NewProject/data/eshop.json)
您希望从项目目录下的任何文件访问eshop.json文件。
解决方案如下:
92vpleto3#
我建议问题来自模块阅读路径,如果你的情况是fs。readFile正在查找,直到你从 root index.js调用它
如果您的路径
-index.js
./services/getData.js
(fs.readFile func在这里调用)./json/eshop.json
index.js内部
必须将 *./services/getData.js * 的视图端更改为 * index.js *
到
我也遇到了同样的问题,这个解决了我,不需要安装任何东西。