如何修复Node.js中的“未定义args”错误?

时间:2019-06-01 13:08:37

标签: node.js discord.js

我想创建一个音乐机器人,所以我很快就注意到结束代码表明该机器人不会因代码下方指示的错误而启动。谢谢您对我的启发。

谢谢帮助

switch (args[0].tolowerCase()) {
  case "play":
    if (!args[1]) {
      message.channel.send("Indiquez le __lien__ s'il vous plaît !");
      return; 
   }

if(!message.member.voiceChannel) {
  message.channel.send("Vous devez vous trouvez dans un salon **vocal** 
!");
  return;     

    }

    if(!servers[message.guild.id]) servers[message.guild.id] = {
      queue : []
    }

   var server = servers[message.guild.id]

    server.queue.push(args[1]);

    if(!message.guild.voiceConnection) 
message.member.voiceChannel.join().then(function(connection) {
  play(connection, message);
    })
    break;
  case "skip" :
    var server = servers[message.guild.id];

    if (server.dispatcher) server.dispatcher.end();
    break;
  case "stop" :
    var servers = servers[message.guild.id];

    if (message.guild.voiceConnection) 
    message.guild.voiceConnection.disconnect();
        break;
  default:
    message.channel.send("La commande saisie est invalide !");
}

这是控制台日志。

ReferenceError: args is not defined
    at Object.<anonymous> (C:\Users\Thomas\Desktop\Nolosha 
 Bot\index.js:170:1)

2 个答案:

答案 0 :(得分:1)

欢迎堆栈溢出。

您收到的错误是您尚未声明变量args,但无论如何您都在尝试使用它。使用前,请确保已设置args

const args = message.content.trim().split(/ +/g);

此代码获取消息内容,删除开头或结尾的所有空格,然后将其按空格拆分成多个部分,返回一个数组。请记住,由于它是constant,因此无法在同一块中重新定义。

答案 1 :(得分:0)

> `const Discord = require('discord.js');
const client = new Discord.Client();
const Google = require('./commands/google')
const Ping = require('./commands/ping')
const YTDL = require("ytdl-core")
const args = message.content.trim().split(/ +/g);

//Penser à changer le préfix.
var prefix = "//"
var servers = {};

switch (args[0].tolowerCase()) {
  case "play":
    if (!args[1]) {
      message.channel.send("Indiquez le __lien__ s'il vous plaît !");
      return; 
    }

    if(!message.member.voiceChannel) {
      message.channel.send("Vous devez vous trouvez dans un salon **vocal** !");
      return;     

    }

    if(!servers[message.guild.id]) servers[message.guild.id] = {
      queue : []
    }

    var server = servers[message.guild.id]

    server.queue.push(args[1]);

    if(!message.guild.voiceConnection) message.member.voiceChannel.join().then(function(connection) {
      play(connection, message);
    })
    break;
  case "skip" :
    var server = servers[message.guild.id];

    if (server.dispatcher) server.dispatcher.end();
    break;
  case "stop" :
    var servers = servers[message.guild.id];

    if (message.guild.voiceConnection) message.guild.voiceConnection.disconnect();
    break;
  default:
    message.channel.send("La commande saisie est invalide !");
}

function play(connection, message) {
  var server = servers[message.guild.id];

  server.dispatcher = connection.playStream(YTDL(server.queue[0], {filter : "audioonly"}));

  server.queue.shift();

  server.dispatcher.on("end", function() {

    if (server.queue[0]) play(connection, message);
    else connection.disconnect();
  });
}`

请检查此内容。我将可能涉及的所有订单归为一组。我该怎么办 ?我不是专业人士 如果可以帮助我