1. ホーム
  2. javascript

[解決済み] "語彙宣言が単一ステートメントコンテキストに表示できない "の修正方法

2022-02-24 06:30:02

質問

埋め込みを行い、ボットを実行すると、この問題が発生します。 EmbedHelp = Discord.RichEmbed とする。 この問題はターミナルに表示されるので、問題と修正すべき点を入力してください。

SyntaxError: Lexical declaration cannot appear in a single-statement context
   at new Script (vm.js:79:7)
   at createScript (vm.js:251:10)
   at Object.runInThisContext (vm.js:303:10)
   at Module._compile (internal/modules/cjs/loader.js:657:28)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
   at Module.load (internal/modules/cjs/loader.js:599:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
   at Function.Module._load (internal/modules/cjs/loader.js:530:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
   at startup (internal/bootstrap/node.js:283:19) 

埋め込みに使っているコードは:

client.on('message', message => {
    if (message.startsWith('$Commands'))

    let EmbedHelp = Discord.RichEmbed()
        "title": "title ~~(did you know you can have markdown here too?)~~",
        "description": "```",
        "url": "https://discordapp.com",
        "color": 192748,
        "timestamp": "Timezone - GGT 3+",
        "footer": {
            "icon_url": "https://cdn.discordapp.com/avatars/563449221701959700/8386d5fe48d71898c40244e7a5a66d58.png",
            "text": "footer text"
        },
        "thumbnail": {
            "url": "https://cdn.discordapp.com/avatars/563449221701959700/8386d5fe48d71898c40244e7a5a66d58.png"
        },
        "image": {
            "url": "https://cdn.discordapp.com/embed/avatars/0.png"
        },
        "author": {
            "name": "Galak$y#3038",
            "url": "https://discordapp.com",
            "icon_url": "https://discordapp.com/channels/564059839320555540/569179399211974666"
        },

    }
});
channel.send({EmbedHelp})



解決方法は?

このエラーは、以下の行を参照しています。 Discord.RichEmbed() . オブジェクトがないのにオブジェクトのプロパティが宣言されています。Discordのドキュメントから引っ張ってこようとしたものがいくつか混ざっているようです。

リッチエンベッド は、他のヘルパーメソッドと連鎖することを想定しています。もし、コードをオブジェクトの中に入れて (中括弧で囲んで) {} に渡し、それを send メソッドを実行すれば、このエラーは解消されるはずです。

client.on('message', (message) => {
  if (message.startsWith('$Commands')) {
    message.channel.send({
      embed: {
        title: 'title ~~(did you know you can have markdown here too?)~~',
        description: '```',
        url: 'https://discordapp.com',
        color: 192748,
        timestamp: 'Timezone - GGT 3+',
        footer: {
          icon_url:
            'https://cdn.discordapp.com/avatars/563449221701959700/8386d5fe48d71898c40244e7a5a66d58.png',
          text: 'footer text',
        },
        thumbnail: {
          url: 'https://cdn.discordapp.com/avatars/563449221701959700/8386d5fe48d71898c40244e7a5a66d58.png',
        },
        image: {
          url: 'https://cdn.discordapp.com/embed/avatars/0.png',
        },
        author: {
          name: 'Galak$y#3038',
          url: 'https://discordapp.com',
          icon_url:
            'https://discordapp.com/channels/564059839320555540/569179399211974666',
        },
      },
    });
  }
});