Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';我的JSON文件中的object/dictionary元素是否不能访问?Node.js_Node.js_Json_Discord.js - Fatal编程技术网

Can';我的JSON文件中的object/dictionary元素是否不能访问?Node.js

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”属性。 以

我正在创建一个discord机器人,我需要在一个JSON文件中存储一个用户列表(以及每个用户想要的一个YT链接)。然后,当用户将
%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
的目录。