javascript - 如何修复'无法读取'null'的属性'id'
问题描述
我不时收到此错误消息,导致我的机器人崩溃。
这是控制台中的错误消息:
C:\Users\Administrator\Desktop\FortniteRanked8.5\events\message.js:7
if(prefixed.hasOwn(message.guild.id)){
^
TypeError: Cannot read property 'id' of null
at module.exports (C:\Users\Administrator\Desktop\FortniteRanked8.5\events\message.js:7:36)
问题来自这一行:
if (prefixes.hasOwn(message.guild.id)){
设置:
- 视窗服务器 2012
- Discord.js:v11.4.2
- 节点:v8.11.1
代码:
const Store = require('data-store');
module.exports = (client, message) => {
var prefixes = new Store({ path: __dirname + '/../prefixes.json' });
// console.log(prefixes.clone())
if (message.author.bot) return;
var prefix = client.config.prefix
if (prefixes.hasOwn(message.guild.id)){
prefix = prefixes.get(message.guild.id)
}
if (message.content.indexOf(prefix) !== 0) return;
const args = message.content.slice(prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
const cmd = client.commands.get(command);
if (!cmd) return;
if (cmd && !message.guild)
return message.channel.send("Vous ne pouvez pas faire de commande ici, Merci de faire les commandes directement sur votre serveur discord.");
cmd.run(client, message, args);
};
解决方案
message.guild
是空的,在你应该检查它是否存在之前,就像message && message.guild && ...
. 使用它,您将确保所有字段都存在。
推荐阅读
- css - 如何正确使用 css 过渡?
- java - 如何从 Android 中的 Firebase 获取 List 的值?
- java - 为什么重新启动具有限制使用 UserManager.DISALLOW_USB_FILE_TRANSFER 的应用程序的设备会导致设备无法使用?
- android - Gradle Android rootProject.configurations 与配置
- scala - 如何使用 docker 在 spark 容器中运行 scala 代码?
- python-3.x - 如果索引不匹配,Pandas 不会从系列中放置值
- kubernetes - 如何使用 OpenStack 在 Kubernetes 中的同一端口上公开多个服务
- firebase - Firestore ConnectionState 在颤振应用程序中永远处于等待状态
- c# - c# WinForms - 如何获取容器表单设置的UserControl的大小
- javascript - 为 D3 堆积条形图准备嵌套 JSON 数据