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

366
Vistas
nodejs ejs cómo mostrar un campo específico de una matriz de objetos en la plantilla ejs

Estoy tratando de mostrar un campo específico del primer objeto que está dentro de una matriz de objetos.

índice.js:

 router.get('/chatroom', ensureAuthenticated, (req, res) => { const user = req.user chatroom.find({chatroom_users: user.name}, function (error, data) { res.render("chatroom", { data, user: req.user}); }) } })

sala de chat.ejs:

 <script> <% for (var i = 0; i < data.length; i++) { %> var chatroom_message0 = "<%= data[i].chatroom_message.date%>" <% } %> </script>

Esta es la estructura en MongoDB:

ingrese la descripción de la imagen aquí

Pero hasta ahora solo puedo mostrar el objeto completo pero no el campo específico que quiero, en este caso el campo "fecha".

ingrese la descripción de la imagen aquí

He probado muchas combinaciones diferentes, por ejemplo:

 "<%= data[i].chatroom_message["date"]%>" "<%= data[i].chatroom_message._date%>"

Pero no puedo hacer que funcione, por lo que agradecería cualquier ayuda.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

la fecha está dentro de una matriz, por lo que tiene sentido que no pueda seleccionar de esa manera, según el formato de sus datos, se puede usar así:

 <= data[i].chatroom_message[0].date %>

si el formato es

 data = [ {chatroom_message : {date, user_name, message} }, {chatroom_message : {date, user_name, message} }, ] <% for( let i = 0; i < data.length; i++ ) { %> <% const {chatroom_message} = data[i] %> <% for( let j = 0; j < chatroom_message.length; j++ ) { %> <%= chatroom_message[j].date %> <% } %> <% } %>

o si el formato es

 chatroom_message = [ {date, user_name, message} ] <% for( let i = 0; i < chatroom_message.length; i++ ) { %> <%= chatroom_message[i].date %> <% } %>
about 4 years ago · Juan Pablo Isaza Denunciar

0

Lo descubrí, cometí un error tipográfico en mi modelo mongodb. Había escrito "fechas" en el modelo en lugar de "fecha", por eso no apareció.

about 4 years ago · Juan Pablo Isaza 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