discord.js Не удается прочитать свойства неопределенного (чтение «отправить») после отправки сообщения

#javascript #discord.js

#язык JavaScript #discord.js

Вопрос:

 Client.once('ready', () =gt; {  console.log('Bot online') });  Client.on("message", message =gt; {  if (message.channel.id = '915302302682873909') {  const logChannel = Client.channels.cache.find(channel =gt; channel.id === "915302371519770664");  //send author  logChannel.send(`${message.author}`   ": ")  .then(message =gt; console.log(`Sent message: ${message.content}`));  //send message content  logChannel.send(message.content)  .then(message =gt; console.log(`Sent message: ${message.content}`));  } })  

Если я запускаю своего бота и отправляю сообщение, чтобы узнать, работает ли он, он отправляет `${message.author}` ": " его так, как должен, но затем сразу же вылетает со словами TypeError: Cannot read properties of undefined (reading 'send') Что также действительно странно, так это то, что когда-то (я не мог понять, когда) он отправляет и `${message.author}` ": " то, и message.content другое перед сбоем.

Комментарии:

1. Это означает, что канал не удалось найти. Вместо того, чтобы искать канал в кэше, попробуйте выбрать канал. const logChannel = Client.channels.fetch('915302371519770664'); . Или, если вы не смогли найти канал, верните функцию. if(!logChannel) return;

2. Если я это сделаю, это говорит о том, что logChannel.send не является функцией

3. Когда вы выбираете новый канал, обязательно разрешите его обещание с await помощью асинхронной функции или сохраните канал в .then функции обратного вызова

4. Кроме того, почему вы используете шаблонные литералы для всего, кроме первого метода отправки?

5. Я искал другие решения раньше и пробовал некоторые вещи, но потом не удалил их

Ответ №1:

Это означает, что logChannel значение не определено.

Если ваш идентификатор правильный, вы можете определить его следующим образом:

 const logChannel = Client.channels.cache.get('915302371519770664') || Client.channels.fetch('915302371519770664');```