Estoy recuperando documentos de Mongo Atlas usando la nueva API de datos de esta manera:
axios(config) .then(function (response) { console.log(response.data); res.render('profile', { snippets: response.data, }) .catch(function (error) { console.log(error); }); }; Mi console.log(response.data) muestra los documentos correctamente así:
documents: [ { _id: '6245b82edde6452fece5d27d', snippet: '<p>This is a test post in <strong>bold, </strong>in <em>italic, </em>in <span style="text-decoration: underline;">underline,</span> and with a <a href="http://www.google.com">link</a></p>' }, { _id: '6245b8fbe9d255ab42528197', snippet: '<p>This is a test post in <strong>bold, </strong>in <em>italic, </em>in <span style="text-decoration: underline;">underline,</span> and with a <a href="http://www.google.com">link. A second time!</a></p>' } ] }Luego seguí esta respuesta para intentar representar una lista simple de estos valores de fragmentos en una tabla:
table each snippet in snippets tr#snippet_list_item td #{snippet._id} td #{snippet.snippet}pero lo consigo
snippets include [object Object],[object Object]renderizado en la parte delantera en lugar de los valores.
¿Qué me estoy perdiendo? Mi pensamiento fue... pasar los objetos, iterar, acceder a los valores de cada uno. Pero obviamente no estoy haciendo algo bien.
De acuerdo, para las personas que vienen a esto mientras aún están aprendiendo...
Si alguna vez tiene este problema, en el que intenta acceder a valores dentro de una matriz de objetos y obtiene 'Objeto Objeto', asegúrese de observar la estructura de los datos que está obteniendo.
Vea abajo
documents: [ { _id: '6245b82edde6452fece5d27d', snippet: '<p>This is a test post in <strong>bold, </strong>in <em>italic, </em>in <span style="text-decoration: underline;">underline,</span> and with a <a href="http://www.google.com">link</a></p>' }, { _id: '6245b8fbe9d255ab42528197', snippet: '<p>This is a test post in <strong>bold, </strong>in <em>italic, </em>in <span style="text-decoration: underline;">underline,</span> and with a <a href="http://www.google.com">link. A second time!</a></p>' } ] }Mis datos están estructurados así:
'documents'[ {document 1} {document 2} ] Cada {document} es un object . Pero todos están dentro de una array de objects , que en mi caso son 'documents'. Puede ver esto por los [] corchetes que contienen los {documentos}.
Entonces, al acceder a los valores, primero debe acceder a la matriz mediante response.data.{$name_of_array}, LUEGO, puede usar la notación de puntos para acceder a los valores
así que para acceder a los valores, harías algo como:
response.data.{$name_of_array}.{$name_of_value_name}si accede a todos estos, deberá iterar a través de ellos, si accede solo a 1, puede usar su posición en el índice de esta manera:
response.data.{$name_of_array}[$index_number].{$name_of_value_name}¡Espero que esto ayude a alguien!