Skip to content Skip to sidebar Skip to footer

Cannot Read Property 'includes' Of Undefined

I am new to JavaScript, am I was trying to dissect an embedded message. Here's my code, it runs fine for a few mins, works accordingly but idk what goes wrong. bot.on('message', (m

Solution 1:

Its because there is at least one item inside the embeds array items that missing the title property.

You will need to update the if statement to be:

If (message.embeds[i] &&
 message.embeds[i].title && ...)

Solution 2:

I think this code can fix this problem.


bot.on('message', (message) => {
  for (var i = 0; i < message.embeds.length; i++) {
    if (message.embeds[i] && message.embeds[i].title.includes("text!")) {
      message.channel.send('reply')
    }
  }
})

Solution 3:

It means inside message.embeds[i] there is at least one element without title property.

You should check first if message.embeds[i].title exists and perform other operations after the check.

Solution 4:

You can write your code more defensive like this. Instead of

if(message.embeds[i].title.includes("text!"))

you can write the following

if(typeof message.embeds[i].title === "string" &&
message.embeds[i].title.includes("text!"))

Solution 5:

Probably some of the embed object is coming without the title property.

You can safely use your logic changing your if condition to:

if ('title'in message.embeds[i] && message.embeds[i].title.includes("text!")) {
   /* ... */
}

Post a Comment for "Cannot Read Property 'includes' Of Undefined"