Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

206
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!