discord.js - “checkwarns”命令给了我这个错误
问题描述
每当我使用我的checkwarns
命令来检查用户的警告数量时,它都会给我这个错误:
2019-03-20T23:55:35.590941+00:00 app[worker.1]: (node:4)
UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'warns' of
undefined
2019-03-20T23:55:35.590958+00:00 app[worker.1]: at
Object.module.exports.run (/app/commands/checkwarns.js:10:35)
我不知道如何解决这个问题我找不到我的代码有任何问题。
const Discord = require("discord.js");
const fs = require("fs");
const ms = require("ms");
let warns = JSON.parse(fs.readFileSync("./warnings.json", "utf8"));
module.exports.run = async(bot, message, args) => {
if (!message.member.hasPermission("MANAGE_MESSAGES")) return
message.reply("You don't have permssion to use this command");
let wUser = message.guild.member(message.mentions.users.first()) ||
message.guild.members.get(args[0])
if (!wUser) return message.reply("Couldn't find that user");
let warnlevel = warns[wUser.id].warns;
if (!warns[wUser.id]) warns[wUser.id] = {
warns: 0
};
message.delete().catch();
let warnembed = new Discord.RichEmbed()
.setTitle("**warns**")
.setColor("#0xff80ff")
.addField("User Warns", warnlevel, true);
message.channel.send(warnembed);
}
module.exports.help = {
name: "checkwarns"
}
我正在使用 Heroku 来托管机器人。
解决方案
您的问题可能出现在这里:
let warnlevel = warns[wUser.id].warns;
如果键wUser.id
不存在,则值为 ,warns[wUser.id]
不undefined
包含任何用户定义的属性。因此,您在尝试warns
读取undefined
.
为了解决这个问题,您首先要检查对象是否warns[wUser.id]
实际存在。一个简单的方法是执行以下操作:
var warnLevel;
if (warns[wUser.id] != undefined) {
warnLevel = warns[wUser.id].warns
}
else {
// Do something else to initialize either warnLevel or warns[wUser.id] here
}
推荐阅读
- java - 比较两家银行,如何比较这两家银行并显示哪个银行更好
- java - 字符串编辑函数循环正在跳过 if 语句
- oracle - 同一张表上的Oracle触发器
- python - 有没有办法优化找到 a+b+c=1000 的毕达哥拉斯三元组的算法?
- app-store-connect - iOS App Distribution - xcode12 - 代码签名“Bolts.framework”失败
- javascript - 转义单引号以在值之间添加逗号
- qualtrics - 有什么方法可以向 qualtrics 添加音频响应?
- excel - 查找字符串列中的最大数
- python - 从 Kaggle 数据集中获取 zip 文件的名称
- css - 根据表头对齐表体