如果运行没有检查,否则

我使用node.js和discord.js来为服务器创build一个私人聊天机器人。

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

我得到这个错误,如果不和谐我自己运行“!战争”:

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."); } } 

  if (name.length < 16) 

它试图评估name.length并在这里失败。 我build议你写

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

首先检查未定义的值并退出函数,如果是这样的话,那么做一些工作,如果input有效。 如果在别的之前执行,如果在你的情况下,所以它会抛出一个exception