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

Node.js Discord bot调用Google Calendar API出现delete属性未定义报错

错误根因

报错TypeError: Cannot read property 'delete' of undefined指向代码中calendar.events.delete这一行,说明你传入execute方法的calendar对象上不存在events属性,访问未定义属性的delete方法就会抛出该错误。

排查解决步骤

    1. 核对参数传递顺序
      你提到结构相似的insert命令可以正常运行,首先对比两个命令的execute方法参数定义,以及你调用execute时的传参顺序,你当前delete命令的参数顺序是async execute(message, args, calendarId, calendar, mongoose),确认调用时是否把calendar的位置传错(比如和mongoose、calendarId的顺序搞反),或者漏传了calendar参数。
    1. 校验calendar实例有效性
      如果你使用的是Google Calendar API,正常初始化后的实例一定存在events属性,你可以在调用删除方法前添加打印代码确认实例状态:
console.log('传入的calendar实例:', calendar)

如果打印结果没有events字段,说明你传入的是未完成初始化的calendar对象,需要回到实例初始化的代码排查问题。

    1. 补充空值校验避免同类报错
      你当前的代码缺少空值判断,存在多处潜在崩溃风险,建议补充校验逻辑:
// 补充事件查询结果空校验
const nameData = await Event.find({ name: nazwa })
if (!nameData.length) return message.channel.send('**你输入的事件名称不存在!**');

// 补充calendar实例校验
if (!calendar?.events) return message.channel.send('**服务异常,请稍后重试!**');
    1. 确认方法名适配
      如果你使用的不是Google官方的calendar SDK,确认对应库的删除方法名,部分库会用del/remove代替delete(因为delete是JS保留关键字)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:36:03