Skip to content

Latest commit

 

History

History
84 lines (71 loc) · 3.18 KB

File metadata and controls

84 lines (71 loc) · 3.18 KB

shieldsIO shieldsIO shieldsIO

WideImg

Máster en Programación FullStack con JavaScript y Node.js

JS, Node.js, Frontend, Backend, Firebase, Express, Patrones, HTML5_APIs, Asincronía, Websockets, Testing

Clase 68

¡Live Coding! 💪

1 - Migra la aplicación de MovieFire para hacer server render con Nodejs y Pug

Claves:

  • Puedes usar librerías como request, pug, morgan, helmet, firebase...
  • ⚠️ reutilizaremos este ejercicio en el futuro con otras bases de datos, asi que intentan aislar y abstraer la conexión a la base de datos ;-)

Plantillas:

  • index.pug para el listado general de películas
  • details.pug para los detalles de una película
  • error.pug para mostrar errores

Rutas:

  • [GET] / Muestra todas las películas
  • [GET] /create/:name Crea una pelicula
  • [GET] /film/:id Muestra los detalles de una película en concreto
  • [POST] /film/:id/delete Borra una película
  • [POST] /film/:id/update Actualiza el nombre de una película

Estructura de datos por película:

{
  "details" : {
    "Actors" : "Ralph Fiennes, Michael Gambon, Alan Rickman, Daniel Radcliffe",
    "Awards" : "Nominated for 3 Oscars. Another 45 wins & 91 nominations.",
    "BoxOffice" : "$381,000,185",
    "Country" : "USA, UK",
    "DVD" : "11 Nov 2011",
    "Director" : "David Yates",
    "Genre" : "Adventure, Drama, Fantasy, Mystery",
    "Language" : "English",
    "Metascore" : "87",
    "Plot" : "Harry, Ron, and Hermione search for Voldemort's remaining Horcruxes in their effort to destroy the Dark Lord as the final battle rages on at Hogwarts.",
    "Poster" : "https://m.media-amazon.com/images/M/MV5BMjIyZGU4YzUtNDkzYi00ZDRhLTljYzctYTMxMDQ4M2E0Y2YxXkEyXkFqcGdeQXVyNTIzOTk5ODM@._V1_SX300.jpg",
    "Production" : "Warner Bros. Pictures",
    "Rated" : "PG-13",
    "Ratings" : [ {
      "Source" : "Internet Movie Database",
      "Value" : "8.1/10"
    }, {
      "Source" : "Rotten Tomatoes",
      "Value" : "96%"
    }, {
      "Source" : "Metacritic",
      "Value" : "87/100"
    } ],
    "Released" : "15 Jul 2011",
    "Response" : "True",
    "Runtime" : "130 min",
    "Title" : "Harry Potter and the Deathly Hallows: Part 2",
    "Type" : "movie",
    "Website" : "http://www.HarryPotter.com/",
    "Writer" : "Steve Kloves (screenplay), J.K. Rowling (novel)",
    "Year" : "2011",
    "imdbID" : "tt1201607",
    "imdbRating" : "8.1",
    "imdbVotes" : "673,121"
  },
  "name" : "harry potter"
}

Solución

2 - Mejora MovieFire Objetivos:

  • Unifica la estructura de datos (quita details) y normaliza las propiedades (sin capitalización)
  • Usa Bootstrap e includes de Pug
  • Manten una buena estructura separando rutas y modelos, puedes usar async/await para simplificar el trabajo

Solución