Can';我的JSON文件中的object/dictionary元素是否不能访问?Node.js
我正在创建一个discord机器人,我需要在一个JSON文件中存储一个用户列表(以及每个用户想要的一个YT链接)。然后,当用户将Can';我的JSON文件中的object/dictionary元素是否不能访问?Node.js,node.js,json,discord.js,Node.js,Json,Discord.js,我正在创建一个discord机器人,我需要在一个JSON文件中存储一个用户列表(以及每个用户想要的一个YT链接)。然后,当用户将%users键入discord时,bot将返回所有用户及其YT链接。这些文件存储为字典,它可以通过查找文件夹(“./json”)中有多少个json文件,循环遍历每个文件并获取用户id和链接来实现这一点。但是,当我使用fs.readFile读取文件并尝试获取字典的相关元素(var YT=data[“Video”];)时,我遇到错误:无法读取未定义的“Video”属性。 以
%users
键入discord时,bot将返回所有用户及其YT链接。这些文件存储为字典,它可以通过查找文件夹(“./json”)中有多少个json文件,循环遍历每个文件并获取用户id和链接来实现这一点。但是,当我使用fs.readFile
读取文件并尝试获取字典的相关元素(var YT=data[“Video”];
)时,我遇到错误:无法读取未定义的“Video”属性。
以下是出错的代码:
fs.readFile(file, (data) => {
var YT = data["Video"];
var FinalUserID = data["ID"];
msg.channel.send("ID:" + FinalUserID + ", Link: " + YT);
});
以下是主要部分,了解更多内容:
if(msg.content.startsWith(prefix + "users"))
{
//finds how many files are in the directory JSON.
const fs = require('fs');
const dir = './JSON';
fs.readdir(dir, (err, files) => {
var filesJSON = files.length;
if(filesJSON == 0)
{
msg.channel.send("No users have been added.");
console.log("User did %users and no users were printed. ");
}
else if(filesJSON > 0)
{
const path = require('path');
//joining path of directory
const DirPath = path.join(__dirname, 'JSON');
//passing DirPath and callback function.
fs.readdir(DirPath, function(err, files) {
//Error catching/handling:
if(err)
{
return console.log('Unable to scan directory: ' + err);
return msg.channel.send('Unable to scan directory: ' + err);
}
//listing all files using forEach
files.forEach(function(file) {
//fetching the actual contents of each file:
fs.readFile(file, (data) => {
var YT = data["Video"];
var FinalUserID = data["ID"];
msg.channel.send("ID:" + FinalUserID + ", Link: " + YT);
});
});
});
console.log("User did %users and the users in 'users' array was printed. ");
}
由于
readFile
回调-:
fs.readFile(文件,(错误,数据)=>{
如果(错误)抛出错误;
var YT=数据[“视频”];
var FinalUserID=数据[“ID”];
msg.channel.send(“ID:+FinalUserID+”,链接:+YT);
});
因为readFile
回调-:
fs.readFile(文件,(错误,数据)=>{
如果(错误)抛出错误;
var YT=数据[“视频”];
var FinalUserID=数据[“ID”];
msg.channel.send(“ID:+FinalUserID+”,链接:+YT);
});
但我得到了一个错误:目录上的非法操作此错误与原始问题有关吗?无论如何,请确保您没有读取带有fs
的目录。但是,我会得到一个错误:目录上的非法操作此错误与原始问题有关吗?无论如何,请确保您没有读取带有fs
的目录。