【问题标题】:not being able to initialize REST object in discord.js无法在 discord.js 中初始化 REST 对象
【发布时间】:2021-12-19 04:05:14
【问题描述】:

我目前正在尝试按照 discord.js 文档制作一个简单的不和谐机器人。(https://discordjs.guide/creating-your-bot/creating-commands.html#command-deployment-script) 我的问题是关于 deploy-command.js 文件:

const {SlashCommandBuilder} = require('@discordjs/builders')
const {Routes} = require('discord-api-types/v9')
const dotenv = require('dotenv')
const {REST} = require("@discordjs/rest");

dotenv.config()
const token = process.env.DISCORD_JS_TOKEN
const clientId = process.env.clientId
const guildId = process.env.guildId

const commands = [
    new SlashCommandBuilder().setName('ping').setDescription('Replies with pong!'),
    new SlashCommandBuilder().setName('server').setDescription('Replies with server info!'),
    new SlashCommandBuilder().setName('user').setDescription('Replies with user info!')
].map(command => command.toJSON())

const rest = new REST({version:'9'}).setToken(token)

rest.put(Routes.applicationGuildCommands(clientId,guildId),{body:commands})
    .then(() => console.log("Successfully registered application commands from file"))
    .catch(() => console.log('error happened'))

以下行出现错误:

const rest = new REST({version:'9'}).setToken(token) ---> 接口无法实例化

我尝试删除 package-lock.json 和 node_modules,然后通过“npm install”重新安装它们,但没有任何效果。 discordjs/rest 模块中有一个 REST 接口和一个 REST 类。悬停在 {version:'9'},我收到以下消息:“参数数量无效,预期为 0”和“在类 rest 中创建构造函数”的建议(对于 REST 类已经有一个)

这个问题非常令人沮丧,因为我似乎找不到其他有类似问题的人,而且我在 youtube 上观看的所有视频都执行完全相同的代码,没有任何问题(唯一的区别是他们使用视觉视频中的工作室代码)。

任何帮助将不胜感激。

使用的软件:

nodejs(试用版本 16.6.0 和 17.0.0)

网络风暴 2021.2.2

【问题讨论】:

  • 你的令牌正确吗?
  • 嗨!欢迎来到 StackOverflow。我建议使用 vscode 进行 discord.js 开发,因为它有一些非常好的语言特性,但 WebStorm 也很好。您的语法可能不正确。确保大括号之间有空格:const rest = new REST({ version: '9' }).setToken(token);

标签: javascript node.js rest discord discord.js


【解决方案1】:

我遇到了完全相同的问题,然后在 VS Code 上进行了尝试,效果很好。我不知道为什么它在 Webstorm 中不起作用......

【讨论】:

  • 这不是一个有效的答案。你应该检查how to write a good answer
  • 什么意思?
  • 您的回答没有为问题提供任何解决方案。
  • 是的,要解决此问题,您必须将 IDE 从 Webstorm 更改为 VS Code。
【解决方案2】:

我遇到了同样的问题。对于遇到此线程并遇到相同问题的任何人,我发现我使用了错误的客户端 ID。我使用的是我的个人客户端 ID,而不是在 discord 开发者门户中找到的 Bot 的客户端 ID。

文档并没有明确说明这一点,这很烦人

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
  • 这并不能真正回答问题。如果您有其他问题,可以点击 提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
  • @Terry 你是什么意思它并没有真正回答这个问题?这就是提问者问题的解决方案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 2017-09-06
  • 2010-09-27
相关资源
最近更新 更多