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

136
Views
No se puede agregar el objeto obtenido de mongoDB a la matriz javascript normal

Estoy tratando de crear un botón Agregar al carrito que obtenga los datos de la base de datos del producto utilizando la identificación del producto específico que seleccioné. Estoy tratando de empujar el objeto encontrado usando la misma identificación en una matriz de JavaScript normal y luego mostrarlo usando métodos ejs. Mientras estaba tring, descubrí que no puedo enviar los datos en forma de objeto.

Resumen:

En la séptima línea, declaré una matriz y en esa matriz quiero almacenar algunos objetos que obtuve de un modelo de base de datos. En la línea 15, estoy tratando de insertar el formulario del objeto en mi matriz para poder iterar a través de los objetos para mostrarlos en mi página usando ejs. Pero soy incapaz de hacer eso.

capturas de pantalla:

  1. Aquí está el resultado final que obtengo incluso después de intentar empujar objetos en la matriz:

matriz vacía registrada

  1. Aquí están los objetos que estoy tratando de empujar:

Objetos

Código:

 app.get("/cart", (req, res) => { if (req.isAuthenticated()) { const findcartdata = req.user.username; userData.findOne({email: findcartdata}, (err, BookId) => { // console.log(BookId.cartItemId); const idArray = BookId.cartItemId; var bookArray = []; idArray.forEach((data) => { productData.findOne({_id: data}, (err, foundBookData) =>{ // console.log(foundBookData); if(err){ console.log(err); } else{ bookArray.push(foundBookData); } }) }); console.log(bookArray); // res.render("cart", { // cartBookArray: BookId.cartItemId // }) }); } else { res.redirect("/login"); } })

En el código anterior, encontré el correo electrónico del usuario usando el método de usuario de autenticación de pasaporte y usando ese correo electrónico, quería agregar los productos en una matriz de JavaScript diferente (que voy a pasar a mi archivo ejs del carrito y luego repetirlo en la lista) usando esos matriz de Id que obtuve de otro modelo llamado userData. El problema es que puedo encontrar los datos de usuario de cada ID pero no puedo almacenarlos como una matriz de objetos.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Parece un problema de tiempo, su código se completa antes de que la base de datos descargue los objetos y los envíe a su matriz.

Esto debería solucionar su problema:

 // ... const idArray = BookId.cartItemId; var bookArray = []; for (const data of idArray) { const foundBookData = await productData.findOne({_id: data}).catch(console.error); if (!foundBookData) continue; bookArray.push(foundBookData); } console.log(bookArray); // ...

Por cierto, asegúrese de hacer que toda la función también sea asíncrona, lo que se haría cambiando esta línea:

 userData.findOne({email: findcartdata}, async (err, BookId) => { // ...
about 4 years ago · Juan Pablo Isaza 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!