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

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

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 Report

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 Report

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 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!