首页 > 解决方案 > 如何修复'无法读取'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)){

设置:

代码:

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

标签: javascriptnode.jsdiscord.js

解决方案


message.guild是空的,在你应该检查它是否存在之前,就像message && message.guild && .... 使用它,您将确保所有字段都存在。


推荐阅读