如果运行而不检查否则是否

时间:2017-07-16 12:01:35

标签: javascript node.js discord

我使用带有discord.js的node.js为服务器创建私人聊天机会。

我有一个命令的代码来定义你与谁在战争。

如果在不和谐中我运行"!war"我会收到此错误独自:

  

TypeError:无法读取属性'长度'未定义的。

如果发生了什么?

if (msg.content.startsWith(prefix + "war")) {
  let [name] = msg.content.split(' ').slice(1);
  if (name.length < 16) {
    war[id[msg.author.id]] = name;
    msg.channel.send("You are now at war with **" + name + "**. Use !pp for war info.");
    console.log("Command executed : !war");
    fs.writeFile('war.json', JSON.stringify(war));
  } else if (name.isNaN) {
    msg.channel.send("Enter something.");
  } else {
    msg.channel.send("Enter something with less than 16 characters.");
  }
}

2 个答案:

答案 0 :(得分:1)

 if (name.length < 16)

它正在尝试评估name.length并在此处失败。 我建议你写

  if(name!=undefined && name.length && name.length<16)

答案 1 :(得分:0)

首先检查未定义的值并退出函数(如果是这种情况),然后在输入有效时执行一些操作。如果在你的情况下执行if,那么它会抛出异常