SyntaxError: неожиданный токен '?' при создании Discord-бота в JavaScript на repl.it [дубликат]

avatar
Saisaaketh Sambana
9 августа 2021 в 05:41
2208
2
-1

Я получаю сообщение об ошибке:

const token = this.client.token ?? this.client.accessToken;
                                 ^
SyntaxError: Unexpected token '?'

Код для бота Discord:

const Discord = require("discord.js")
const client = new Discord.Client()

client.on("ready", () => {
  console.log(`Logged in as ${client.user.tag}!`)
})

client.on("message", msg => {
  if (msg.content === "ping") {
    msg.reply("pong")
  }
})

client.login("my token here")
Источник

Ответы (2)

avatar
Toxmose
27 августа 2021 в 23:13
2

Вероятно, это связано с учебным пособием FreeCodeCamp Закодируйте бота Discord с помощью JavaScript. На самом деле вы можете использовать оболочку repl.it, чтобы решить эту проблему. Перейдите в оболочку (вкладка справа от вкладки консоли) и введите npm i discord.js@12.5.3

Community
28 августа 2021 в 01:52
0

Пожалуйста, добавьте дополнительную информацию, чтобы расширить свой ответ, например, рабочий код или ссылки на документацию.

avatar
Waymao
9 августа 2021 в 05:57
1

Из вашего сообщения об ошибке в

const token = this.client.token ?? this.client.accessToken;

код в библиотеке разногласий использует ??, нулевой оператор объединения, который доступен только в node.js v14.0.0 и более поздних версиях. Я видел, что среда node.js по умолчанию, доступная на repl.it, имеет только версию 12.16.1.

.

Чтобы заставить ваш код работать, вы можете либо найти старую версию discord.js, которая все еще работает с узлом 12, либо вы можете следовать некоторым инструкциям, чтобы вручную установить новую среду узла (я нашел https:// replit.com/talk/learn/Nodejs-14-on-replit/85501)