SOLUCIÓN de CORS y Desarrollo de API REST con Express

Поделиться
HTML-код
  • Опубликовано: 18 окт 2024

Комментарии • 112

  • @midulive
    @midulive  Год назад +36

    Deberes/Tarea/Actividad:
    * Hacer por paginación 27:12

    • @tutuberoropsytrance
      @tutuberoropsytrance Год назад

      No me salio el patch no se en que estoy mal
      Pero espero subas el ejemplo en el repo

    • @lucaskriger5666
      @lucaskriger5666 Год назад

      cuando utilizo /movies?page=n se rompe, me toma el movies/:id y me devuelve movie not found o.o

    • @UltisaerRevternae-pl1rh
      @UltisaerRevternae-pl1rh 5 месяцев назад

      // Reto solucionado
      app.get("/movies", (req, res) => {
      const genre = req.query.genre;
      let page = parseInt(req.query.page) || 1
      let size = parseInt(req.query.size) || 3
      if (page < 0 ) page = 1
      if (size < 0 ) size = 3
      let moviesQuery = movies
      if (genre) {
      const moviesByGenre = movies.filter((movie) =>
      movie.genre.some((g) => g.toLowerCase() === genre.toLowerCase())
      );
      moviesQuery = moviesByGenre
      if (moviesByGenre.length === 0) {
      return res.status(404).json({ message: `Genre ${genre} not found` });
      }
      }
      const totalElements = moviesQuery.length
      const totalPages = Math.ceil(totalElements / size)
      const start = (page - 1) * size
      const end = start + size
      const dataMovies = moviesQuery.slice(start, end)
      res.json({
      page: page,
      size: size,
      total_elements: totalElements,
      total_pages: totalPages,
      data: dataMovies
      })
      });
      // GET localhost:5439/movies?genre=Drama&page=2&size=3
      // - Si el usuario filtra por genero y dicho genero no devuelve info manda error 404
      // - Por default las query de obtener las peliculas van a estar paginadas con un tamaño de 3 elementos y empiezan en la pagina 1, que se puede modificar con la query
      // - El usuario va poder ingresar numeros negativos en las paginas o tamaño pero estas pero devolverán pagina 1 o tamaño 3, en los positivos no lo hice asi ya que si quiere acceder a la pagina 2000 y no hay info pues vera que no hay info en vez de alterar su numero
      // Pd: Gracias midu muy buen curso y explicaciones 10 / 10

  • @vmweb2602
    @vmweb2602 Год назад +43

    Soy desarrollador de hace 3 años. A pesar de tener experiencia tus explicaciones y dedicación es alimento para refrescar y alimentar mis conocimientos. Te admiro y te agradezco por tu esfuerzo!

    • @midulive
      @midulive  Год назад +2

      ¡Muchas gracias! 🤗

  • @mafi978
    @mafi978 7 месяцев назад +2

    WoW midu, la verdad es que tu contenido es de lo mejor que hay, muy denso para un principiante pero explicado de forma ordenada y de poco a poco, para así tener unas buenas bases a partir de las cuales seguir por ti mismo, es impresionante cómo con 1h y 30 min de video he tardado como 3h enteras para completarlo porque estaba cogiendo apuntes y preguntándole dudas a ChatGPT, pero creo que al final lo tengo todo claro, llevo 3 videos y ya se siente como toda una asignatura de universidad, mi código tiene más apuntes que código jaja.
    Es de los mejores cursos de introducción que he visto, super completo para lo que suelen ser estos cursos y muy bien estructurado, si tus cursos de Platzi están igual de bien, creo que terminaré pasando por caja.

  • @genaroibc
    @genaroibc Год назад +21

    Es increible el aporte de Midu a la comunidad hispana ❤❤❤

  • @nahu-dev
    @nahu-dev Год назад +4

    midu sos un crack, quiero destacar lo importante que es para mi ( y para muchos más) que hayas sido tan meticuloso hasta con la división de las secciones por temas en las clases de youtube que sirven un montón para guiarse en tanto contenido, gracias x tanta calidad, se te quiere midu

  • @inka.
    @inka. 11 месяцев назад +1

    Me encantan tus videos, los veo como una película, estoy aprendiendo, y es emocionante, como cuando aprendí a programar por primera vez y cada cosa era nueva y me abría las oportunidades, así me siento aprendiendo viendo tus videos, es como que todo es una masa gris de cero conocimiento y no sé ni siquiera cómo buscar tutoriales de lo que quiero hacer porque no sé cómo funciona por detras, pero ver tus videos es como apuntar una potente linterna a la oscuridad y tener claro el camino.

  • @JuanPedroVentura
    @JuanPedroVentura 3 месяца назад +1

    MIDU, vengo siguendo la serie de node, eh echos otros de tus cursos y la verdad es que eres un crack tio, muchas gracias.

  • @pablojesuspedraza7324
    @pablojesuspedraza7324 Год назад +4

    Clave la explicación de CORS! Haces que todo parezca facil!!!
    gracias Midu 🧡

  • @andersonproano919
    @andersonproano919 Год назад +3

    Midu eres uno de mis padres en este mundo, gracias por estos videos y siempre hablar con conceptos técnicos para que podamos entender mejor como funciona algo. Sin duda aclare muchos conceptos que posiblemente usaba en código pero que no entendía del todo, un saludo desde Ecuador y gracias por este contenido.

  • @anthonymedina4535
    @anthonymedina4535 3 месяца назад

    Gracias midu, vengo siguiendo este curso y lo que he aprendido con los dos videos anteriores es invaluable, saludos desde Costa Rica!!!

  • @Player-yp7vy
    @Player-yp7vy Год назад +1

    De nuevo, muchas gracias. Pocos saben compartir conocimiento, a ti se te da perfecto.

  • @juancbusta
    @juancbusta 2 месяца назад

    Muchas gracias MIDU, efectivamente la mejor explicación de CORS!!!

  • @josemarin359
    @josemarin359 Год назад +2

    Me ha gustado la explicacion de las monedas. Que grande Midu.!!! De forma sencilla nos da la enseñanza practica sin necesidad de recurrir a terminologia compleja de DDD (entities vs value objects)

  • @omardev9626
    @omardev9626 6 месяцев назад

    validar con zod me ayudo mucho, ahora puedo validar en diferentes proyectos de una manera muy sencilla, gracias Midu

  • @JorgeHernandez-jp2vu
    @JorgeHernandez-jp2vu 2 месяца назад

    Gracias al editor que grande eres 7:27 ♥️, y obvio gracias, gracias por el conocimiento ❤❤

  • @alvarezfeli
    @alvarezfeli 4 месяца назад

    Vengo siguiendo esta playlist de Node.js y es espectacular! Thank you Midu

    • @midulive
      @midulive  4 месяца назад +1

      Muchas gracias!

  • @fuzzz7303
    @fuzzz7303 6 месяцев назад

    Te amo midu, la única solución explicada con el tema de la policía del CORS. Gracias.

  • @josedanielmendoza2305
    @josedanielmendoza2305 Год назад +1

    gracias midu . me viene bien este video , estoy intentando hacer un ToDoList con bases login para diferentes usuarios y este video esta super por el tema de los cors . graciaaas

  • @uzielanguiano271
    @uzielanguiano271 Год назад

    Me esta ayudando mucho gracias. solo der repente sentí que dio un acceleron a cosas que no sabia pero así se aprender.

  • @noeblackberry5209
    @noeblackberry5209 Год назад +1

    ufff!! combino esto con lo que ya sabía y mi entendimiento se abre aún más, gracias

  • @luisdelgado6051
    @luisdelgado6051 Год назад

    Muchisimas gracias... desde lo Alto las mas grandes bendiciones! Siempre entusiasmado por tus cursos! Saludos desde Costa Rica. Pura vida!

  • @gerardopacheco9521
    @gerardopacheco9521 Год назад

    que bárbaro la mejor explicación de rest y cors muhcas gracias!!!!

  • @johnner5735
    @johnner5735 9 месяцев назад

    Excelente todo y a destacar lo del pre-flight en los metodos complejos 😲

  • @cesarquispe2413
    @cesarquispe2413 9 месяцев назад

    Bruno Díaz? 26:57 🤨 jajaja genial la clase y muchas gracias por compartir tu experiencia y conocimientos! Salu2 desde Perú!

    • @PabloOlivera-my7wm
      @PabloOlivera-my7wm 9 месяцев назад

      Bruce Wayne aka Bruno Díaz y Dick Grayson aka Ricardo Tapia

  • @maximogismondi
    @maximogismondi 7 месяцев назад

    Excelente explicación Midu!
    Me queda una duda... cual es el objetivo del CORS ?
    Porque estaba pensandolo por el lado de la seguridad pero cualquiera con la URL de la API podría acceder y leer la respuesta ignorando los headers.

  • @GutSanDev
    @GutSanDev 10 месяцев назад

    Como siempre gracias Midu. Me queda mucho más claro lo de los Cors

  • @SonGoku-pc7jl
    @SonGoku-pc7jl Год назад

    genial clase de node y de cors! mejor entendido que nunca! :D como siempre... muchas gracias por enseñarnos y por ser como eres que hace que aprendamos con una sonrisa en la boca :)

  • @DuberAlexander19
    @DuberAlexander19 Год назад

    Muy agradecido Midu, mucha sustancia traen todos los videos de este curso, trato de digerirlos!!

  • @Yayobyte
    @Yayobyte 6 месяцев назад

    Pagando la entrada al 3 curso, muchas gracias

  • @JJRR_Vauxoo
    @JJRR_Vauxoo Год назад

    que chulada zod, no lo conocia, que crack midu gracias por el video

  • @joansebastiancarrillobaron8014
    @joansebastiancarrillobaron8014 Год назад +1

    Tu contenido es fenomenal, gracias por este curso :)

  • @carlosabramontechavez509
    @carlosabramontechavez509 6 месяцев назад

    Que buen video 👍 y como es el caso en el que da error de cors desde una aplicación movil?

  • @joaquinduarte5260
    @joaquinduarte5260 Год назад +1

    Te amo midu muchas gracias!

  • @fprz14
    @fprz14 9 месяцев назад

    Muy educativo, gracias!

  • @herminsulparra1787
    @herminsulparra1787 Год назад

    eres el mejor 👌, por fin entendí los malditos cors

  • @alexcalle5391
    @alexcalle5391 Год назад

    Muy buena la explicación de CORS, yo pensando que solo era por dominio.

  • @rodolfo4880-e4j
    @rodolfo4880-e4j Год назад +4

    Comparando los metodos con instrucciones SQL:
    POST: Insert
    PUT: Merge
    PATCH: Update

  • @kevintorres8562
    @kevintorres8562 8 месяцев назад

    excelente explicacion, ahora una pregunta para protgher las rutas cual es el mejor metodo? en mi caso tengo varias fetch desde un un .js del html? ya que no me gustaria pasar el token de jwt por cookies, localstorage o session por que queda expuesto.

  • @alejandrom147
    @alejandrom147 Год назад

    Grande Midu! todavia voy por el 1er cap. volveré pronto

  • @juanpasten6077
    @juanpasten6077 5 месяцев назад

    Gracias Midu!

  • @tomasbuzeta3591
    @tomasbuzeta3591 Год назад

    Increible tu aporte como siempre Midu! . Consulta por si alguien sabe, es igual importar randomUUID de esta manera? const { randomUUID } = require('crypto') ?

  • @jhormansnp7535
    @jhormansnp7535 Год назад

    Esto está como pan caliente!!!

  • @manuelcobasguerra5688
    @manuelcobasguerra5688 Год назад

    Graciass miduuuu, en las siguientes clases nos explicarás como usar los workers threads de node y los chiles process? Un saludo :D

  • @deus-lovult
    @deus-lovult 8 месяцев назад

    Midu , para la validacion de los datos que venian en la request era viable usar Express-validator? como un middlware ? Me quedé con esa duda , un saludo!

  • @moorlandclimb
    @moorlandclimb 7 месяцев назад +1

    no mas problemas de CORS :)😍

  • @javiergarciafillol4454
    @javiergarciafillol4454 Год назад

    super bien explicado el cors

  • @nicoplacente
    @nicoplacente 11 месяцев назад +1

    te admiro... demasiado

  • @TitanTV_ManXD
    @TitanTV_ManXD Год назад

    Aún no veo todo el video, que está muy bueno y bien explicado como siempre, pero quería hacer una corrección: la pronunciación de middleware podría ser midelwer o midlwer, pero nunca MAIdelwer. Con cariño💙

    • @midulive
      @midulive  Год назад +1

      Jajaja ya me lo han dicho tantas veces que parece que esquivo la pronunciación correcta

  • @SnS-SpartaN
    @SnS-SpartaN Год назад +1

    *_Cada vez que veo estos videos siento que no se nada_* 🥲

    • @jhossepmartinez1771
      @jhossepmartinez1771 Год назад

      Primero andate a la documentacion y copia el codigo aus salga, mira los errores copialos y pegalos. Si el ejemplo de la docu es muy complicado busca un video mas cortito max 20 mins de lo que quieras aprender y solo mira lo que te interese

  • @NorgeSantana
    @NorgeSantana Год назад

    Hola Midu prodrias explicar la forma mas optima de ferch de datos de una base de datos en firebase? usando el SSR de next js 13.4? 😊

  • @miguelangelmarindiaz4871
    @miguelangelmarindiaz4871 9 месяцев назад +2

    no entiendo porque en el ejemplo que hizo del método DELETE, él si puede recuperar el nombre del origen distinto y yo no puedo, estoy que hago los mismo, pero no me recupera el nombre del origen req.header('origin'); solo en el método get me devuelve el nombre del origen distinto

  • @tomasponce9409
    @tomasponce9409 4 месяца назад

    Grande el Editor poniendo a Porta XD
    7:26

  • @maycolchristianelcorrobarr41
    @maycolchristianelcorrobarr41 Месяц назад

    en la configuracion de cors, cuando usa mi backend a produccion, en la lista tambien tendre que poner mi url de mi backend de produccion ? o no haria falta.

  • @frankfreeman4912
    @frankfreeman4912 Год назад

    Crack total !!!

  • @SkillTrailMalefiahs
    @SkillTrailMalefiahs Год назад

    Midu me gustaría que nos hablaras de Fastify :D :D Express meee...

  • @strykerfoxx
    @strykerfoxx Год назад

    Falta que uses multer para imagenes sobre todo
    Buen video

  • @martinojeda3648
    @martinojeda3648 8 месяцев назад +1

    Midu intentando que aprendamos de donde vienen las cosas. Yo cuando uso cors:
    const cors = require('cors')
    app.use(cors()) 😂😂😂

  • @blurcode6292
    @blurcode6292 Год назад

    Ahora uno con buenas practicas.

  • @Haironons
    @Haironons Год назад

    Excelente midu!!

  • @elsuperhard
    @elsuperhard Год назад

    Una consulta, como es el tema del certificado del curso?, seguro lo explicaste pero no lo encuentro. Gracias!

  • @gilbertovarelasanchez8711
    @gilbertovarelasanchez8711 Год назад

    Hola, por favor puedes subir los archivos de la clase 3 al repositorio, solo está el JSON. Gracias.

  • @user-yg3oc3rt1x
    @user-yg3oc3rt1x 3 месяца назад

    Midu diciendo que "...req.body: Eso no se hace nunca". Yo con uno de esos en la mochila.

  • @tuttodev
    @tuttodev Год назад

    tuttodev también entraría al controlador

  • @GustavoFigueroaSuárez
    @GustavoFigueroaSuárez 21 день назад

    no se si tengo algo mal, creo q no pero en lugar de 200 me sale en movies un 301 y remote address [::1]8080 en lugar de 1234. Le ha pasado al alguien mas? Solucion?

  • @maicolavila5464
    @maicolavila5464 Год назад

    midu y tus lentes bro

  • @bartreaccion
    @bartreaccion 7 месяцев назад

    Como hacer para cambiar el icono a una flecha bonita cuando pone esto: =>. Muchas gracias midu

  • @juandavidruedamartinez1278
    @juandavidruedamartinez1278 Год назад

    Te amo

  • @jlonso1840
    @jlonso1840 11 месяцев назад

    Hola a todos los devs, una pregunta pls, qué hace exactamente esta verificación? (parte de PATCH)
    app.patch('/movies/:id', (req, res) => {
    const result = validatePartialMovie(req.body)
    if(!result.success){
    return res.status(404).json({ error: JSON.parse(result.error.message)}) //

  • @nihil_um
    @nihil_um Год назад +1

    ¿Cómo se podría sanitizar inputs con Zod?. Por ejemplo evitar que te metan alguna etiqueta html o un script en un campo.
    Un saludo.

  • @andresrubiot
    @andresrubiot 3 месяца назад

    Hola, disculpa, esta es la solución, cuando nosotros hacemos la API, pero que pasa cuando estoy consumiendo un API de una empresa privada y no puedo decirle al API que origen aceptar, como puedo consumir esa API

  • @ramsesgonzalez4371
    @ramsesgonzalez4371 Год назад

    Midu, como estas?. Me esta costando seguir cuando tengo algún error por que no esta actualizado el repo del curso...

    • @midulive
      @midulive  Год назад +1

      También puedes ir al Discord de la comunidad para que te echen una mano: discord.gg/midudev

  • @korinca78
    @korinca78 10 месяцев назад

    a que se deberá este error "TypeError: keyValidator._parse is not a function", me sale en el archivo movies.js en esta linea: return movieSchema.safeParse(object), he revisado el codigo una y otra vez y esta igual como lo hace midulive,

  • @briki21
    @briki21 Год назад

    El POST me agrega solamente el id y el rate, pero no me agrega las otras propiedades de la request y me dice que son undefined, escribi todo igual que en el video.

    • @Ezep02
      @Ezep02 Год назад +1

      si, a mi me paso lo mismo, pero despues probe usando Thunder Client y se agrego correctamente!

  • @lucho2318
    @lucho2318 Месяц назад

    como hace para escribir emojis poniendo :nombredelemoji ?

  • @modo_demoledor
    @modo_demoledor Год назад

    q hambre me da cuando dice 'se lo come con patatas' xdd

  • @lucaskriger5666
    @lucaskriger5666 Год назад

    donde esta la opcion de unirme al canal?

  • @juanjesustenreirorodriguez8891
    @juanjesustenreirorodriguez8891 4 месяца назад

    El PU... CORS es un dolor de cabeza!!! XD

  • @lucaskriger5666
    @lucaskriger5666 Год назад

    Por que no tengo el error CORS?

  • @marcosjafethazabachesuarez3264
    @marcosjafethazabachesuarez3264 6 месяцев назад

    no me funciona el npx server ./web

  • @irenerodriguez3830
    @irenerodriguez3830 4 месяца назад

    la ruta fl0/pricing no existe

  • @programacion3694
    @programacion3694 6 месяцев назад +1

    owo

  • @MarianitoRayser
    @MarianitoRayser Год назад

    Me quede trabado en el DELETE problema de variable

    • @cristiansegura7433
      @cristiansegura7433 6 месяцев назад

      mira que como por una hora que intente llegue lo resolvi:
      y es que a midu le falto crear el metodo de eliminar :
      app.delete('/movies/:id', (req, res) => {
      const origin = req.header('origin');
      if (ACCEPTED_ORIGINS.includes(origin) && origin) {
      console.log('origin');
      // cors
      res.header('Access-Control-Allow-Origin', origin);
      }
      const { id } = req.params;
      const movieIndex = movies.findIndex(movie => movie.id === id);
      if (movieIndex === -1) {
      return res.status(404).json({ message: 'Movie not found' });
      }
      movies.splice(movieIndex, 1);
      return res.json({ message: 'Movie deleted' });
      });

    • @cristiansegura7433
      @cristiansegura7433 6 месяцев назад

      y por eso es que te devolvia seguro un 404 y problema de cors.
      en teoria es crear el endpoint de eliminar y dentro incluir el cors para tu servidor web, espero hacerme explicar

  • @isaaccerdas14
    @isaaccerdas14 6 месяцев назад

    A alguno le funciona el crear la cuenta en FL0?

    • @midulive
      @midulive  5 месяцев назад +2

      Fl0 ha cerrado 🥹

    • @isaaccerdas14
      @isaaccerdas14 5 месяцев назад +1

      @@midulive Que triste🥲, pero gracias por la respuesta tendre que seguir con el curso de Node

  • @ivanperciante
    @ivanperciante Год назад

    horrible

  • @juanpasten6077
    @juanpasten6077 5 месяцев назад

    Gracias Midu!