Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

172
Visualizações
Uso de una función de esquema de Mongoose dentro de un modelo de Mongoose exportado

Últimamente he estado trabajando en un sistema de autenticación que se supone que crea un nuevo usuario si no existe ningún usuario con una ID dada O carga en un usuario con una ID existente. También descubrí que puede devolver si un usuario existe o no con ID usando

 User.count({_id: id}, function (err, count){ if(count > 0){ // User exists, continue with loading data } else { // User does not exist, create one } });

siendo el usuario un modelo Mongoose exportado mongoose.model('User', UserSchema);

Si creé una función que existe con Id (id) en mi app.js ahora, funcionaría perfectamente bien (a juzgar por el hecho de que el código mencionado anteriormente funciona perfectamente bien ), pero quiero mover esta función a mi modelo user.js ( que contiene el código Mongoose / MongoDB) en su lugar, de modo que lo tenga solo para ese modelo específico. Cada vez que trato de hacer eso usando

 UserSchema.statics.existsWithId = function(id) { this.count({_id: id}, function (err, count){ return count > 0; }); }

o métodos similares, sin embargo, simplemente devolverá undefined o un error una vez que lo ejecute dentro de mi app.js.

NOTA: Lo siento si esta es una pregunta simple o incluso tonta, pero soy bastante nuevo considerando la administración de bases de datos con Mongoose y aunque tengo ALGUNA experiencia con JS, no soy exactamente un profesional en eso.

Si alguno de ustedes necesita un código adicional proporcionado para responder a la pregunta, no dude en preguntarme y lo haré. Además, todavía no puedo +repetir respuestas, pero siempre las aprecio :)

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Su método existsWithId devuelve un valor de forma asíncrona para que pueda devolverle la llamada y obtener el resultado de esta manera:

 UserSchema.statics.existsWithId = function(id, cb) { this.count({ _id: id }, function(err, count) { cb(err, count > 0); }); } User.existsWithId("5882c3be5aad09028d4d8b46", function(err, res) { console.log(res); });
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda