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

131
Vistas
Datos modificados al usar sqlite3

Soy un desarrollador de bots de Discord y uso una base de datos SQLite para mi bot. Instalé sqlite3 por comando npm y trabajé con él, no hubo problema, pero ahora no puedo usarlo porque modifica valores. Tengo un poco de código aquí:

 const ghostChannels = await new Promise((resolve, reject) => client.db.all(`SELECT * FROM "Ghosts"`, (err, rows) => err ? reject(err) : resolve(rows) ) ); ghostChannels.forEach(async (channel) => { const guildchannel = await message.member.guild.channels.cache.get( channel.id ); console.log(channel.id); console.log(guildchannel); const mess = await guildchannel.send(message.member); await mess.delete(); });

Lamentablemente devuelve un error:

 Uncaught TypeError TypeError: channel.send is not a function

ingrese la descripción de la imagen aquí

Así que miré el id y vi que no es el mismo ID que en la base de datos:

ingrese la descripción de la imagen aquí

No se como solucionarlo, si alguien sabe que me lo diga :)

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

El problema es que intenta almacenar los copos de nieve como números enteros (por ejemplo, 988185997772738610 ), mientras que debe almacenarlos como cadenas ( "988185997772738610" ). Como estos ID tienen más de 53 bits ( MAX_SAFE_INTEGER ), JavaScript tiene dificultades para interpretarlos. Solo puede representar con seguridad números enteros entre -(2 53 - 1) y 2 53 - 1.

Entero máximo seguro 9007199254740992
tu entero 988185997772738610
Su número entero se convierte en 988185997772738600

Como puede ver, los dos últimos dígitos de cada ID de discordia/copo de nieve se convierten en 0 si se almacenan como números enteros. Incluso puedes probarlo a continuación:

 console.log(988185997772738610) // => 988185997772738600 console.log('988185997772738610') // => "988185997772738610"

Entonces, para resolver su problema, asegúrese de insertar las ID del canal (y otras) como cadenas en la base de datos.

about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Quizás lo haces de manera incorrecta? llamar a cualquier base de database necesita alguna gateway de enlace (no sé el nombre exacto). por ejemplo:

 const ghostChannels = await new Promise((resolve, reject) => client.db.all(`SELECT * FROM "Ghosts"`, (err, rows) => err ? reject(err) : resolve(rows) ) ); ghostChannels.forEach(async (channel) => { const guildchannel = await message.member.guild.channels.cache.get( channel.id ); console.log(channel.id); console.log(guildchannel); const mess = await channel.send(message.member); await mess.delete(); });

desde que llamaste a tu guildchannel para db tu:

 const mess = await channel.send(message.member);

debiera ser:

 const mess = await guildchannel.send(message.member);

EDITAR:

He visto que guildchannel se muestra como undefined , puedes probar:

 await guildchannel.channel?.send

o algo como esto:

 const chan = message.guild.channels.cache.get(`${channel.id}`) chan.send("set")
about 4 years ago · Juan Pablo Isaza 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