I am trying to fetch results from my Database and process them as foreach. This is the specific code:
case "edit":{
const editrow = new MessageActionRow();
let query = `SELECT * FROM tickettypes WHERE guild_id = '${interaction.guild.id}'`
let queryresult = []
sql.query(query, function(err, result) {
if(err) throw err;
queryresult = result;
});
if(queryresult = null){
interaction.reply({content: 'Error: No tickettypes available', ephemeral: true})
return;
}
const editmenu = new MessageSelectMenu()
.setCustomId('editselect')
.setPlaceholder(' Select tickettype to edit')
.addOptions([
{
label: 'None',
description: 'Empty',
value: 'none',
},])
queryresult.forEach(item => {
editmenu.addOptions([
{
label: item.name,
description: item.name,
emoji: item.emoji,
value: item.id,
},
])
});
editrow.addComponents(editmenu);
const editembed = new MessageEmbed()
.setColor('YELLOW')
.setTitle('Edit tickettype')
.setAuthor({ name: interaction.user.username})
.setDescription('Select the tickettype you want to edit')
interaction.reply({ embeds: [editembed], components: [editrow], ephemeral: true})
}
break;
This is the Error i receive:
C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\Commands\System\tickettypes.js:112
queryresult.forEach(item => {
^
TypeError: Cannot read properties of null (reading 'forEach')
at Object.execute (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\Commands\System\tickettypes.js:112:29)
at Object.execute (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\Events\Interaction\interactionCreate.js:19:21)
at Client.<anonymous> (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\Structures\Handlers\Events.js:19:54)
at Client.emit (node:events:520:28)
at InteractionCreateAction.handle (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\actions\InteractionCreate.js:74:12)
at Object.module.exports [as INTERACTION_CREATE] (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
at WebSocketManager.handlePacket (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31)
at WebSocketShard.onPacket (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\ws\lib\event-target.js:199:18)
PS C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2>
Does anyone know how to solve this? I have also read something about others using Promises, but since i am quite new to Node (and JS) i don't really know what to do.
Thanks for the help guys