【问题标题】:'Const' Is not defined. (discord.js)'Const' 未定义。 (discord.js)
【发布时间】:2021-06-20 12:20:37
【问题描述】:

我正在制作一个音乐机器人,我想在它返回消息时添加一个 Embed,但我收到一个错误,说 const 未定义。

这是我的代码:

const Discord = require('discord.js');
const bot = new Discord.Client({
    partials: ['MESSAGE', 'CHANNEL', 'REACTION']

});
const config = require('./settings.json');
const { loadCommands } = require('./utils/loadCommands');
const DisTube = require('distube');


bot.distube = new DisTube(bot, { searchSongs: false, emitNewSongOnly: true });
bot.distube
    .on("playSong", (message, queue, song) => message.channel.send(
    const exampleEmbed = new Discord.MessageEmbed()   
        .setColor('#0099ff')
    .setTitle('Playing Now:')
    .setDescription('`${song.name}`')
    .setTimestamp()
    .setFooter('Requested by: ${song.user}');        


    .on("addSong", (message, queue, song) => message.channel.send(
        .setColor('#0099ff')
    .setTitle('Added to Queue:')
    .setDescription('\`${song.name}\`')
    .setTimestamp()
    .setFooter('${song.formattedDuration} - Requested by ${song.user}');         

require('./utils/loadEvents')(bot);

bot.commands = new Discord.Collection();
bot.aliases = new Discord.Collection();

loadCommands(bot);

bot.login(config.token);

然后在我运行它之后,我得到了这个错误:

const exampleEmbed = new Discord.MessageEmbed()
    ^^^^^

SyntaxError: Unexpected token 'const'
←[90m    at wrapSafe (node:internal/modules/cjs/loader:1024:16)←[39m
←[90m    at Module._compile (node:internal/modules/cjs/loader:1072:27)←[39m
←[90m    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1137:10)←[39m
←[90m    at Module.load (node:internal/modules/cjs/loader:973:32)←[39m
←[90m    at Function.Module._load (node:internal/modules/cjs/loader:813:14)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)←[39m

【问题讨论】:

  • message.channel.send( const exampleEmbed = new D ...
  • 不能在函数参数中初始化变量

标签: javascript discord.js distube


【解决方案1】:

我从未使用过 discord js,但快速浏览一下文档,我猜你应该先声明变量,然后发送它

bot.distube
    .on("playSong", (message, queue, song) => {
    const exampleEmbed = new Discord.MessageEmbed()
           .setColor('#0099ff')
         .setTitle('Playing Now:')
         .setDescription('`${song.name}`')
         .setTimestamp()
         .setFooter(`Requested by: ${song.user}`);  

     message.channel.send(exampleEmbed);
}

还有 2 个问题。

  1. 注意.setFooter('Requested by: ${song.user}') 模板字符串应该带有反引号'`'。见下文
.setFooter(`Requested by: ${song.user}`)
  1. 您的事件侦听器( playSong 和 addSong )和您的 send 方法似乎没有关闭 )

在此处阅读更多信息 -> embed discord

【讨论】:

    【解决方案2】:

    看起来 channel.send() 接受一个字符串或嵌入作为参数。您应该在发送之前在外部 lambda 中定义消息:

    // abbreviated code to relevant snippet
    bot.distube = new DisTube(bot, { searchSongs: false, emitNewSongOnly: true });
    bot.distube
       .on("playSong", (message, queue, song) => {
           const exampleEmbed = new Discord.MessageEmbed()
               ...
           message.channel.send(exampleEmbed);
       });
    

    【讨论】:

      猜你喜欢
      • 2020-08-07
      • 2021-06-28
      • 2020-12-14
      • 2022-08-21
      • 2021-05-06
      • 2021-07-10
      • 2021-04-06
      • 2020-06-27
      • 2020-12-24
      相关资源
      最近更新 更多