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

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

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