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

272
Visualizações
¿Cómo obtener todas las instancias de la base de datos?

Me veo obligado a hacer un proyecto "simple". El profesor quiere mongoDb y node js. Quiero obtener todos los autos de mi base de datos, pero find() no funciona. Mi modelo de código:

 const mongoose = require('mongoose'); const CarSchema = mongoose.Schema({ mark:{ type: String, required: true,}, model:{ type: String, required: true,}, price:{ type: Number, required: true,}, available: { type: Boolean, required: true,}, pic_1:{ type:String, required:true, }, pic_2:{ type:String, required:true, } }) const Car = mongoose.model('Car', CarSchema) module.exports = Car

Ruta:

 router.get('/getAll', (req, res) =>{ const cr=Car.find({}); console.log(cr); res.render('main', {user: req.user, cars:cr} ); });

Console.log muestra todo pero no la lista de autos ;) Más estrictamente: muestra la estructura de la aplicación y los directores. ¿Como arreglarlo? Y cómo hacerlo sin =>{} - es muy ilegible, largo y me sangran los ojos. Solo quiero tomar todos los autos de db, asignarlos a la var y luego renderizar la vista con esos autos.

¡Hay muchas preguntas, pero ninguna respuesta resolvió mi problema! Saludos

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

0

Car.find() es una operación asíncrona.

Solución 1: usar async/await

 router.get('/getAll', async (req, res) =>{ const cr = await Car.find({}); console.log(cr); res.render('main', {user: req.user, cars:cr} ); });

Solución 2: usar la función de devolución de llamada

 router.get('/getAll', (req, res) =>{ Car.find({}, (error, cars) => { console.log(cars); res.render('main', {user: req.user, cars: cars} ); }); });

Si no desea utilizar las funciones de flecha, cambie como se muestra a continuación

 () => {} > function() {}

Cambios en su código

 router.get('/getAll', async function(req, res) { const cr = await Car.find({}); console.log(cr); res.render('main', {user: req.user, cars:cr} ); });

Referencia:

asíncrono/espera

Facilitando la programación asíncrona con async y await

Mangosta - Model.find()

Funciones de flecha

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