You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS运行报错TypeError:无法读取null的id属性如何解决

报错原因

TypeError: Cannot read properties of null (reading 'id') 代表代码尝试从一个值为null的对象上读取id属性,对应你提供的代码片段,问题出在message.guild.id这行:

  • 消息来自私信(DM)场景时,消息不属于任何服务器,message.guild固定返回null,直接读取id就会触发报错
  • 开启了部分结构(partial)缓存配置的bot框架(比如discord.js),事件回调拿到的是不完整的消息对象,未拉取完整结构时guild属性可能为null
  • 消息触发回调时已经被删除,关联的服务器属性缓存失效,也会返回null
修复方案

在读取message.guild.id之前提前做空值拦截,有partial配置的场景先拉取完整消息结构,参考修改代码:

const Timeout = new Map();
module.exports = async (client, message, db) => {
  // 非服务器场景直接终止逻辑
  if (!message.guild) return;
  // 若开启了partial结构支持,先拉取完整消息对象
  if (message.partial) await message.fetch();

  let checking = db.fetch(`nitroemoji_${message.guild.id}`)
  if(checking == true) {
    // 原有后续业务逻辑
  }
}
额外排查提示

如果修改后仍出现同类报错,直接顺着报错栈定位读取.id属性的代码行,先判断.id所属的父对象是否为null/undefined,再做属性读取即可。

内容的提问来源于stack exchange,提问作者m1ks1k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:54:08