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

268
Vistas
¿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 Respuestas
Responde la pregunta

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