discord.js:JSON 星球属性未定义
Posted
技术标签:
【中文标题】discord.js:JSON 星球属性未定义【英文标题】:discord.js: JSON planet property is undefined 【发布时间】:2018-12-09 02:16:57 【问题描述】:我正在使用 discord.js 制作一个 Discord 机器人,并且我开始向其中添加 JSON 内容,以便我可以将单个用户的信息存储在一个单独的文件中。但是,在显示if (bot.log[mentionedGuyName].planet == undefined)
的行中,我不断收到错误消息planet is not defined
。这里有一些变量、模块等没有被声明或其他什么,但这只是因为如果我把我所有的代码都放在这里,它会很长。我的 JSON 文件名为 log.json
。
此代码块的一般用途是查看用户是否已经拥有一个“星球”。如果是这样,机器人会从 JSON 文件中获取该值,并将其发送到通道。如果没有,那么它会随机选择一个(由于大小我没有放在这里的代码)
我想我至少了解错误发生的原因(行星属性未定义),但我不确定如何解决它。如果有人知道如何声明 JSON 属性或这里发生的任何事情,我和我的服务器将不胜感激。提前致谢!
这是我的 javascript 文件:
let mentionedGuy = message.mentions.members.first();
let mentionedGuyName = null;
let noMentions = message.mentions.members.first() == false ||
message.mentions.members.first() == undefined;
if (noMentions) return;
else mentionedGuyName = mentionedGuy.user.username;
if (message.content.startsWith(prefix + "planet"))
if (message.content.length > 7)
if (bot.log[mentionedGuyName].planet == undefined)
bot.log[mentionedGuyName] =
planet: jMoon
fs.writeFile('./log.json', JSON.stringify(bot.log, null, 4), err =>
if (err) throw err;
);
message.channel.send(targeting);
message.channel.send(coords);
else
message.channel.send(bot.log[mentionedGuyName].planet);
【问题讨论】:
【参考方案1】:更改它以检查 typeof
if(typeof <var> == 'undefined') //returns true if undefined
注意 typeof 返回一个字符串 Source
【讨论】:
谢谢,但它仍然给了我同样的错误。您对如何解决“行星未定义”有任何想法吗?以上是关于discord.js:JSON 星球属性未定义的主要内容,如果未能解决你的问题,请参考以下文章
无法读取未定义 discord.js 的属性“名称”尝试读取 json 中的数组
JavaScript、Discord.js、Node.js 类型错误:无法读取未定义的属性“执行”