search
CursosEmpresasBlogLiveConfPrecios
Curso de Manipulación del DOM

Descargando información y creando nodos

Curso de Manipulación del DOM

Contenido del curso

DOM y Web API

  • 1
    Y entonces nació internet...

    Y entonces nació internet...

    02:23 min
  • 2
    Accede a la versión más actualizada de este contenido

    Accede a la versión más actualizada de este contenido

    00:14 min
  • 3
    ¿Qué es el DOM?

    ¿Qué es el DOM?

    02:39 min
  • 4
    Web APIs modernas

    Web APIs modernas

    03:17 min

Operaciones básicas

  • 5
    Leer nodos

    Leer nodos

    09:31 min
  • 6
    NodeLists vs Array

    NodeLists vs Array

    03:46 min
  • 7
    Crear y agregar

    Crear y agregar

    15:47 min
  • 8
    Otras formas de agregar

    Otras formas de agregar

    06:55 min
  • 9
    Atributos y propiedades

    Atributos y propiedades

    05:12 min
  • 10
    Eliminar nodos

    Eliminar nodos

    09:31 min
  • 11
    Operaciones en lote

    Operaciones en lote

    06:52 min

Workshop 1: Fetch

  • 12
    Presentación del proyecto

    Presentación del proyecto

    01:10 min
  • 13
    Descargando información y creando nodos

    Descargando información y creando nodos

    Viendo ahora
  • 14
    Enriqueciendo la información

    Enriqueciendo la información

    10:53 min
  • 15
    Usando la API de internacionalización del browser

    Usando la API de internacionalización del browser

    12:14 min
  • 16
    Comparte el resultado

    Comparte el resultado

    02:18 min

Eventos

  • 17
    Reaccionar a lo que sucede en el DOM

    Reaccionar a lo que sucede en el DOM

    13:58 min
  • 18
    Event propagation

    Event propagation

    12:08 min
  • 19
    Event delegation

    Event delegation

    05:32 min

Workshop 2: Lazy loading

  • 20
    Presentación del proyecto

    Presentación del proyecto

    03:34 min
  • 21
    Nuestro propio plugin Lazy Loading

    Nuestro propio plugin Lazy Loading

    08:32 min
  • 22
    Creando las imagenes con JavaScript

    Creando las imagenes con JavaScript

    17:33 min
  • 23
    Intersection Observer

    Intersection Observer

    14:21 min
  • 24
    Aplicando Lazy loading

    Aplicando Lazy loading

    13:07 min
  • 25
    Comparte el resultado

    Comparte el resultado

    03:17 min

Workshop 3

  • 26
    Proyectos propuestos

    Proyectos propuestos

    04:17 min

Librerías relacionadas

  • 27
    ¿Y jQuery?

    ¿Y jQuery?

    03:41 min
  • 28
    ¿Y JSX?

    ¿Y JSX?

    09:40 min

Conclusiones

  • 29
    Conclusiones

    Conclusiones

    01:56 min
schoolTomar examen

Descargando información y creando nodos

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

Comentarios180

Sebastian Gonzalez

Sebastian Gonzalez

Estudiante
Hace 6 años
    Jimmy Buriticá Londoño

    Jimmy Buriticá Londoño

    Estudiante
    Hace 6 años
    Andrés Felipe García Rendón

    Andrés Felipe García Rendón

    Estudiante
    Hace 5 años
Andres Felipe Pinchao Ramirez

Andres Felipe Pinchao Ramirez

Estudiante
Hace 6 años
    David Daniel Castillo Nava

    David Daniel Castillo Nava

    Estudiante
    Hace 6 años
    Luis Felipe Medina Rodriguez

    Luis Felipe Medina Rodriguez

    Estudiante
    Hace 6 años
Jenny Aguilar

Jenny Aguilar

Estudiante
Hace 5 años
    Luis Alejandro Vera Hernandez

    Luis Alejandro Vera Hernandez

    Estudiante
    Hace 5 años
    Keyla Conde Sánchez

    Keyla Conde Sánchez

    Estudiante
    Hace 4 años
Vsqz Gabriel

Vsqz Gabriel

Estudiante
Hace 6 años
    Jonathan 🦑 Alvarez

    Jonathan 🦑 Alvarez

    Profesor
    Hace 6 años
    Edgar Lopez Arroyo

    Edgar Lopez Arroyo

    Estudiante
    Hace 5 años
Guillermo Castaño Vèlez

Guillermo Castaño Vèlez

Estudiante
Hace 6 años
Carlos Eduardo Gomez García

Carlos Eduardo Gomez García

Estudiante
Hace 6 años
    Pablo Verduzco

    Pablo Verduzco

    Estudiante
    Hace 6 años
    Jonathan 🦑 Alvarez

    Jonathan 🦑 Alvarez

    Profesor
    Hace 6 años
Magali Alexander López Chavira

Magali Alexander López Chavira

Estudiante
Hace 5 años
    John Ruiz

    John Ruiz

    Estudiante
    Hace 5 años
Armando Rivera

Armando Rivera

Estudiante
Hace 6 años
Diego Daniel Pedroza Perez

Diego Daniel Pedroza Perez

Estudiante
Hace 6 años
    Rodrigo Martinez

    Rodrigo Martinez

    Estudiante
    Hace 6 años
Luis Alain

Luis Alain

Estudiante
Hace 5 años
    Jose Oscar Rosas Perez

    Jose Oscar Rosas Perez

    Estudiante
    Hace 4 años
    Santander Cristian

    Santander Cristian

    Estudiante
    Hace 4 años
Iván Garcia

Iván Garcia

Estudiante
Hace 5 años
Diego Rubio

Diego Rubio

Estudiante
Hace 6 años
    Arturo Mauricio Terceros Beltrán

    Arturo Mauricio Terceros Beltrán

    Estudiante
    Hace 5 años
    José Luis Encastin Flores

    José Luis Encastin Flores

    Estudiante
    Hace 5 años
Hector Andres Erira Huertas

Hector Andres Erira Huertas

Estudiante
Hace 6 años
    Uriel Alberto Arevalo Franco

    Uriel Alberto Arevalo Franco

    Estudiante
    Hace 5 años
    Juan Diego Pelaez González

    Juan Diego Pelaez González

    Estudiante
    Hace 3 años
Jesus Chirinos

Jesus Chirinos

Estudiante
Hace 6 años
    Alex Camacho

    Alex Camacho

    Profesor
    Hace 6 años
    Jonathan 🦑 Alvarez

    Jonathan 🦑 Alvarez

    Profesor
    Hace 6 años
Sebastian Heredia

Sebastian Heredia

Estudiante
Hace 5 años
    José Luis Encastin Flores

    José Luis Encastin Flores

    Estudiante
    Hace 5 años
Julio Astudillo

Julio Astudillo

Estudiante
Hace 4 años
Efraín Hernández García

Efraín Hernández García

Estudiante
Hace 5 años
Karenn Yeraldin Hernández Duarte

Karenn Yeraldin Hernández Duarte

Estudiante
Hace 5 años
Jose Barboza

Jose Barboza

Estudiante
Hace 5 años
    Carlos Eduardo Gomez García

    Carlos Eduardo Gomez García

    Estudiante
    Hace 5 años
    Jose Barboza

    Jose Barboza

    Estudiante
    Hace 5 años
LEANDRO DARIO MAMANI

LEANDRO DARIO MAMANI

Estudiante
Hace 5 años
    Carlos Guillermo Coello Valenzuela

    Carlos Guillermo Coello Valenzuela

    Estudiante
    Hace 5 años
    Fernando Quinteros Gutierrez

    Fernando Quinteros Gutierrez

    Estudiante
    Hace 5 años

El fetch() con async/await

const url = "https://platzi-avo.vercel.app/api/avo"; //web api async function fetchData() { const response = await fetch(url), data = await response.json(), allItems = []; data.data.forEach((item) => { // create image const image = document.createElement("img"); // create title const title = document.createElement("h2"); // create price const price = document.createElement("div"); const container = document.createElement("div"); container.append(image, title, price); allItems.push(container); }); document.body.append(...allItems) } fetchData();

Me gusta más usar async/await, te quedo bien desarrollado el ejercicio.

Muchsa gracias por compartir tus apuntes.Salu2

MIS APUNTES 😎🤙🤙👌

//URL API const url = "https://platzi-avo.vercel.app/api/avo"; /*Web API Fetch La utilizamos para traer recursos desde cualquier otro sitio web Lo unico que tenemos que pasarle es nuestra url 1. Nos conectaremos al servidor */ window .fetch(url) /*2. Procesar la respuesta y despues la convertimos en JSON Fetch es algo que nos devuelve una promesa asi que trabajaremos con promesas para obtener la respuesta y transformarla en JSON */ .then(respuesta => respuesta.json()) /*3. Luego de que convirtamos la respuesta en JSON lo que obtenemos ahora es informacion y la obtenemos concatenando otra promesa Cuando tengamos el JSON tendremos esa informacion que nos servira para renderizar esa info en nuestro navegador*/ .then(responseJson =>{ const todosLosItems = []; /*recorremos cada uno de los elementos que estan en arrays con un forEach */ responseJson.data.forEach(item => { /*atraves del parametro de la funcion del forEach accedemos a los elementos de la respuesta json*/ //creamos nuestros elementos const imagen = document.createElement('img'); const titulo = document.createElement('h2'); const precio = document.createElement('div'); // cremos el contenedor donde vamos a poner nuestros elementos const container = document.createElement('div'); /*agregamos los elementos a un contenedor container.appendChild(imagen); container.appendChild(titulo); container.appendChild(precio); */ container.append(imagen,titulo,precio); //agregamos el contenedor en nuestro body //document.body.appendChild(container); todosLosItems.push(container); console.log(item.name); }); document.body.append(...todosLosItems) }); /*RESUMEN: NOS CONECTAMOS A UNA API QUE ES UN PUENTE CON LA INFORMACION DE UN SERVIDOR Y ESE SERVIDOR NOS DEVUELVE ESA INFORMACION, Y UTILIZAMOS UN CICLO POR CADA UNO DE LOS ELEMENTOS QUE NOS DEVUELVE ESE SERVIDOR CREAMOS NODOS Y SE LOS AGREGAMOS AL FINAL A NUESTRO HTML*/ /*RETO PARA MEJORAR ESTE CODIGO Y ES HACERLO CON ASYNC Y AWAIT EN VES DE PROMESAS */```

Te ganas mi me gusta por compartir la url gracias

😎 carita fachera

Por si hay alguno que se pregunta cómo hace Jonathan para ver en formato json lo que arroja la API directo en el navegador, hay extensiones para el navegador que son muy útiles para ello. En mi caso uso JSON Viewer y parece que el profe igual. Se habilita en la configuración del navegador y se busca desde extensiones. El repo de github es https://goo.gl/fmphc7. Espero les sirva.

Era lo que necesitaba. Gracias

Claro que me sirvió, muchas gracias!

Y si creamos creamos un fragmento de documento vacio el cual este listo para insertar nodo en el de la siguiente forma

let fragment = document.createDocumentFragment();
fetch(url) .then((res) => res.json()) .then((data) => { //creamos el fragment let fragment = document.createDocumentFragment(); data.data.forEach((item) => { let image = document.createElement('img'); let title = document.createElement('h2'); let price = document.createElement('span'); const container = document.createElement('div'); container.append(image, title, price); //agregamos los nodos al fragment y no al DOM directamente fragment.appendChild(container); }); //solo renderizamos una sola vez el DOM document.body.append(fragment); });```

Genial! es una forma más óptima :D

Interesante, no conocía ese método :D

Este es el curso que estaba esperando de Platzi para poder conectar todo lo básico con el curso profesional.

Recomiendo encarecidamente trabajar con Windows Subsystem for Linux para hacer cualquier práctica de programación, en serio, creanme, les va a ahorrar demasiados dolores de cabeza, si aún no sabes cómo instalar Windows Subsystem for Linux, puedes aprenderlo en el Curso de Prework: Configuración de Entorno de Desarrollo en Windows. . Dicho esto, aquí les dejo los pasos de la instalación para NodeJS para Linux y para Windows Subsystem for Linux (Node en su versión más actualizada) . Primero, actualicemos nuestros repositorios (es muy probable que les pida su contraseña):

sudo apt update && sudo apt upgrade

Ahora, añadimos el repositorio de NodeJS el cuál nos proveerá la versión más reciente (este traerá la versión 14, si quieres puedes revisar por la versión 15):

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

Ahora sí procedemos a instalar NodeJS:

sudo apt install nodejs

. Esto te debería instalar NPM y NodeJS, para revisarlo, puedes ejecutar en tu terminal esto

node --version && npm --version

¡Así de fácil es instalar cosas en Linux! . Si quieres hacerlo en Windows entonces ve a la página de NodeJS y ejecuta su instalador (recomiendo la versión LTS) :D

También te recomiendo nvm.

Niiice, con eso es mucho más fácil desarrollar en Windows!

@pabloverduzco recomendó NVM para manejar versiones de Node, también lo sugiero, aunque yo uso FNM (tiene una mejora de performance). Y también existe "n"

Tarea: Obtener información con async/away

tareaConAsync-away.png

Wenos días;

@magali

Genial código, lo he entendido muy bien, gracías.

Link de la API https://platzi-avo.vercel.app/api/avo

Puede ser que necesiten instalar create-snowpack-app para que funcione, Así que pueden usar npm para instalar el paquete

npm install create-snowpack-app```

dont forget

$ sudo

Si a alguien también le sucedió que no le refresca la página automáticamente y tiene que reiniciar el localhost para poder ver los cambios... Aquí les comparto la solución que a mí me funciono:

  1. Primero vamos a crear un nuevo archivo en nuestro proyecto llamado .env

  2. Luego, dentro de este archivo vamos a agregar las siguientes 2 líneas de código:

CHOKIDAR_USEPOLLING=true FAST_REFRESH=false
Screenshot 2022-01-24 105712.png

Ojo. El archivo .env lo debemos crear en la ruta principal de nuestro proyecto, es decir, que no debe estar dentro de ninguna carpeta.

  1. reiniciamos el localhost con las teclas CTRL + C y volvemos a ejecutar el npm start.

  2. Si todavía no se reflejan los cambios automáticamente en el navegador, entonces detenemos nuevamente el localhost y lo volvemos a ejecutar con el siguiente comando:

CHOKIDAR_USEPOLLING=true npm start

Con esto se debería solucionar el problema. Espero que les sea de ayuda :)

No sé que es ese archivo . env, pero ya me actualiza automáticamente los cambios en el navegador. Gracias

Gracias por el intento, pero no me funcionó.

Un poco más gráfico para entenderlo mejor 🤣

node.png

por qué no actualiza los freaking cambios en mi compu? instale snowpack con npm pero aun aí hago cambios y no actualiza los cambios en el browser, no sé nunca he utilizado snopack, hasta hoy ni sabía que existía

X2. Alguna solución?

Me pasó lo mismo. Tenía que cerrar la ventana, parar el proceso en la terminal y volver a correr con npm start.

Si alguien encontró alguna solución, lo agradecería.

Estaba teniendo problemas para crear el proyecto con npx asi que lo instalé de forma global

npm install -g create-snowpack-app

despues ejecute

create-snowpack-app my-app --template snowpack-template-tailwind``` de esta forma me funcionó, yo uso windows

Gracias, lo instalé tal cual. Y funcionó.

Muchas Gracias

a alguien mas le ha tomado 3 días solo esta clase?

¿Qué se te dificulto? :) Preguntando igual siempre podemos obtener explicaciones diferentes.

Hey heyy ¿algo en particular en lo que te podamos ayudar? :D

Que clase mas deliciosa, pude aplicar todos los conocimientos de la ruta como lo fue NPM, JS, Asincronismo, etc. :)

Lo mismo pienso. Aunque me tarde cerca de una hora en esta sola clase, lo sentí súper real, porque me hizo repasar varios conceptos. ¡Me encantó! Ojalá traigan más cursos con el profesor Jonathan.

A alguien mas no le deja hacer el npm start?

Ya me viene dando problemas desde que se instalaron las dependencias con el npx

Por si a alguien le sirve, para detener el localhost desde la terminal basta con teclear crtl + c o cmd + c

Async / await y algunas cositas mas

const base_url = 'https://platzi-avo.vercel.app/'; const fetchData = async () => { const respuesta = await fetch(`${base_url}api/avo`); const datos = await respuesta.json(); let todosItems = []; datos.data.forEach(item => { const imagen = document.createElement('img'); imagen.src = `${base_url}${item.image}`; const titulo = document.createElement('h2'); titulo.textContent = `${item.name}`; const precio = document.createElement('p'); precio.textContent = `${item.price}`; const container = document.createElement('div'); container.append(imagen, titulo, precio); todosItems.push(container); }); document.body.append(...todosItems); } fetchData();

¿como cambio el puerto? Port 8080 not available. Use --port to specify a different port intente con: npm start --port 8081 npm start --port:8081

Intenta así:

npm start -- --port 8081

si funciona con esto:

npm start -- --port 8081```

gracias retax

Porque no me sale la misma estructura del código que al profesor?

photo_2021-04-03_12-35-36.jpg

es porque él tiene instalada una extensión para visualizar de mejor forma los jsons

Aquí el link a la extensión: https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa?hl=es

También puedes usar Postman, para realizar este tipo de consultas de una manera más ordenada te lo recomiendo bastante, en el curso de Postman se aprende muy bien la herramienta