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

253
Vistas
Mongoose no guarda datos de acuerdo con una función (discord.js)

Hoy, decidí hacer un bot RPG de Discord que, por supuesto, requiere estadísticas de perfil como monedas y usuarios reales. Por lo tanto, busqué un tutorial sobre cómo puedo hacer esto con MongoDB pero me encuentro con un problema. Cuando un miembro del gremio se une y el bot se está ejecutando, los datos no se guardan sin ningún error y no estoy seguro de por qué sucede esto. Intenté solucionar el estado de la conexión agregando una línea console.log(mongoose.connection.readyState) después de que el bot intenta conectarse a la base de datos. Esto devuelve 1 , lo que significa que la conexión está bien. No puedo encontrar ninguna otra razón por la que esto ocurra, así que decidí hacer una pregunta después de horas de pensar.

(index.js): Conexión a la base de datos

 const mongoose = require("mongoose"); mongoose.connect(process.env.MONGO_SERVER, { useNewUrlParser: true, useUnifiedTopology: true }).then(() => [ console.log("Connected to MongoDB Database successfully!"), console.log(mongoose.connection.readyState) ]).catch((err) => { console.error(err); });

(profileSchema.js): creación de un esquema de perfil

 const mongoose = require("mongoose"); const profileSchema = new mongoose.Schema({ id: { type: String, require: true, unique: true }, serverid: { type: String, require: true }, coins: { type: Number, default: 0 }, bank: { type: Number } }); const model = mongoose.model("ProfileModels", profileSchema); module.exports = model;

(guildMemberAdd.js): creación y carga de datos en la base de datos

 const profileModel = require('../models/profileSchema'); module.exports = async(client, discord, member) => { let profile = await profileModel.create({ id: member.id, serverid: member.guild.id, coins: 0, bank: 0 }) profile.save(); }
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

La razón tiene que ver con la forma en que te conectas a mongo.

POR defecto, mongo cierra la conexión después de conectarse a una base de datos. Para hacer esto, cuando se conecte a mongo pass en la opción keepAlive , se vería así:

 mongoose.connect(process.env.MONGO_SERVER, { useNewUrlParser: true, useUnifiedTopology: true, keepAlive: true })

Esto significará que se mantendrá abierta una conexión activa a su base de datos.

about 4 years ago · Santiago Trujillo Denunciar

0

¿Está exportando 'modelo' de profileSchema.js y requiere 'profileModel' de guildMemberAdd.js? así que importa el modelo de profileSchema y no de profileModel

about 4 years ago · Santiago Trujillo Denunciar

0

Corrección: asegúrese de que se llame al evento guildMemberAdd agregando declaraciones de console.log .

Si no, comprueba si el código de guildMemberAdd es diferente a otros códigos de eventos.

about 4 years ago · Santiago Trujillo 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