Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

201
Vistas
¿Cómo obtengo la información de la base de datos antes de enviar un mensaje?

Actualmente estoy creando un bot de discord con discord.js v13. En este momento tengo una base de datos donde se almacenan el guild.id y el prefijo estándar de un servidor. Ahora quiero reescribir un comando que se activa con el prefijo y el nombre del comando, como este '!somecommand'. Actualmente, mi prefijo está definido en el archivo con una variable const, pero quiero que el bot verifique la base de datos en busca del prefijo que tiene el servidor y use este en su lugar. Estoy comprobando el prefijo en la base de datos con esta parte del código:

 pool.getConnection(function(err, connection) { if (err) throw err; let sql = `SELECT * FROM custom_prefix WHERE guild_id = '${message.guild.id}'`; connection.query(sql, async function (err, result) { if (err) throw err; console.log(result[0].prefix) connection.release(); }); });

La salida es el prefijo actual del servidor donde se activó el comando, hasta ahora todo funciona bien. Pero como dije, quiero que la salida del código anterior sea el prefijo con el que se activa el bot.

Ya intenté hacerlo, pero siempre me equivoco. La mayoría de las veces, el bot verifica la base de datos demasiado lento y el resultado será 'indefinido'. No sé cómo hago para que el bot espere el resultado de la base de datos, verifique si este resultado es realmente el prefijo y luego ejecute el comando.

Estoy feliz con cualquier respuesta :-) Si necesita más información, hágamelo saber.

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Supongo que pusiste el código que usa el resultado fuera de la devolución de llamada.

 pool.getConnection(function(err, connection) { if (err) throw err; let sql = `SELECT * FROM custom_prefix WHERE guild_id = '${message.guild.id}'`; connection.query(sql, async function (err, result) { if (err) throw err; console.log(result[0].prefix) connection.release(); // // Put your code that uses result[0].prefix here // }); }); // // Do not put your code that uses result[0].prefix here //
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda