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

discord.io开发的Discord Bot在Sparked Hosting启动报错求助

解决 Discord Bot 在 Sparked Hosting 登录崩溃的问题

问题定位

报错 discord.io - Cannot set properties of undefined (setting 'avatar') 说明 Bot 在登录阶段获取自身用户信息时,尝试操作一个未定义的对象,大概率是依赖版本不一致、网络限制或环境差异导致的。

排查与修复步骤

  • 强制依赖版本一致
    本地/Heroku 的依赖版本可能和 Sparked Hosting 上安装的存在差异:

    1. 本地执行 npm list 导出完整依赖树(含子依赖版本)
    2. 在 Sparked Hosting 终端执行 npm list 对比版本
    3. 在 package.json 中指定所有依赖的精确版本号(去掉^或~前缀),重新执行 npm install
  • 验证 Discord API 访问权限
    Sparked Hosting 基础套餐可能有出站网络限制:

    1. 在终端执行 curl -H "Authorization: Bot YOUR_TOKEN" https://discord.com/api/v10/users/@me,测试能否正常获取 Bot 自身信息
    2. 如果请求失败,联系服务商确认是否放行 Discord API 的 443 端口及相关域名
  • 调试登录阶段的 API 响应
    临时添加日志定位问题:

    1. 在 Bot 登录代码前,手动调用 Discord 的Get Current User接口,打印返回的用户数据
    2. 对比本地/Heroku 与 Sparked Hosting 上的返回结果,看是否存在字段缺失
    3. 若有必要,可临时修改discord.io包内报错位置的代码,打印当前操作的对象,确认是否为undefined
  • 正确配置环境变量
    Sparked Hosting 支持环境变量设置:

    1. 登录控制面板,找到服务器的「环境变量」或「配置」选项(通常在高级设置中)
    2. 添加DISCORD_TOKEN变量并填入令牌,删除本地.env文件后重启 Bot
  • 更换或调整 discord.io 版本
    discord.io 是维护不活跃的老旧库:

    1. 降级到本地/Heroku 运行正常的精确版本
    2. 若问题持续,考虑迁移到discord.js等活跃维护的库(需适配代码,但能避免兼容性问题)

临时应急方案

如果以上步骤无效:

  1. 本地打包完整的node_modules文件夹,FTP 上传到服务器,直接使用验证过的依赖版本
  2. 重新在 Discord 开发者平台生成新令牌,排除令牌过期或权限问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:00:53