📘 Tutorial TypeScript con Node.js y Express. ¡Crea tu API REST con tipos estáticos DESDE CERO!

Поділитися
Вставка
  • Опубліковано 9 лис 2024

КОМЕНТАРІ • 259

  • @MrEduleon78
    @MrEduleon78 2 роки тому +57

    Me acabo de dar cuenta de algo mientras veo el video, sabes que te diferencia de muchos otros teacher en youtube, incluso de otras plataformas de educación que tu explicas el código, dices de donde salen las cosas, el por que de cada linea de codigo y eso en mi caso me hace click con la explicacion y me ayuda a entender (SOY AUTODIDACTA Y ME GUSTARIA APRENDER A PROGRAMAR Y ME A COSTADO MUCHO, soy solo contra toda la informacion, ni siquiera conozco a nadie que sea programador como para hacerle una pregunta, bueno solo espero tener buenos profesores como tu) en cambio otros profesores solo describen un codigo, que segun ellos de la forma mas sencilla pero no me enseñan nada, solo me dicen que un string se llama string pero no me dicen el por que se llama string, espero haberme hecho entender! SOLO GRACIAS POR LA DEDICACION, me ha servido de mucho!

    • @Civernet00
      @Civernet00 7 місяців тому +2

      Hola si gustas me puedes escribir yo soy autodidacta y logre tener éxito en mi carrera profesional

  • @ezequielsosa2965
    @ezequielsosa2965 Рік тому +26

    `[
    {
    "id":1,
    "date":"2017-01-01",
    "weather":"rainy",
    "visibility":"poor",
    "comment":"Pretty scary flight, I'm glad I'm alive"
    },
    {
    "id":2,
    "date":"2017-04-01",
    "weather":"sunny",
    "visibility":"good",
    "comment":"Everything went better than expected, I'm learning much"
    },
    {
    "id":3,
    "date":"2017-04-15",
    "weather":"windy",
    "visibility":"good",
    "comment":"I'm getting pretty confident although I hot a flock of birds"
    },
    {
    "id":4,
    "date":"2017-05-11",
    "weather":"cloudy",
    "visibility":"good",
    "comment":"I almost failed the landing but I survived"
    }
    ]`

  • @mateoruiz1504
    @mateoruiz1504 2 роки тому +69

    Uff bro eres el impulso que me faltaba para continuar estudiando, la forma en la que explicas es excelente !!

    • @midudev
      @midudev  2 роки тому +2

      😊😊😊 gracias Mateo!!

  • @miguecast
    @miguecast Рік тому +18

    Para mí eres sinónimo de calidad. Se que sabes de lo que hablas y lo haces ameno, no dejas cabos sueltos y haces la milla extra. Un 10! Me lo he pasado súper bien siguiéndote y aprendiendo. Lo ampliarías a un CRUD entero con autenticación y una DB real? Sería la ostia en patinete y aprendería un montón

  • @bloidev
    @bloidev 2 роки тому +7

    Es promesa, a penas logre absorber los conocimientos que nos das,
    seguire el ejemplo de compartir contenido gratuito y de valor para los mas nuevos.
    en especial, creo que la gente que hace esta labor salva vidas!

  • @muntius8680
    @muntius8680 Рік тому

    Gracias joven. Años fuera del mundillo y uno se reconforta al encontrarse a gente joven que sabe de lo que habla y no son meros charlatanes con canal de UA-cam. Sigue así.

  • @cristiandavidmoralesmogoll4895
    @cristiandavidmoralesmogoll4895 2 роки тому +8

    Hombre, simplemente indescriptible la calidad de tu contenido, sos el mejor, viendo sus videos siento que hasta yo lo puedo lograr, te mando un abrazo mi amigo , sos lo máximo, full inspiración viendo tus videos

    • @midudev
      @midudev  2 роки тому +1

      Muchas gracias, Cristian!!!!

  • @mlosail3
    @mlosail3 11 місяців тому +1

    demore 3 horas en ver el tutorial mientras escribia el codigo y hacia paso a paso lo que hiciste, y de verdad que no me di cuenta del tiempo que habia pasado, muy entretenido de principio a fin

  • @fabiantorresm
    @fabiantorresm Рік тому +2

    Eres lo máximo. No quería aprender TS, pero al ver los primeros minutos como explicas ya vi una necesidad de aprender y ver el vídeo completo, saludos, eres un crack.

  • @carlossierra173
    @carlossierra173 2 роки тому +53

    Te quiero mucho midu, eres todo lo que esta bien en el desarrollo de software

    • @midudev
      @midudev  2 роки тому +13

      Qué bonito. Gracias Carlos. Estos comentarios ayudan mucho. 🥲

    • @ismaelgrimaldo2125
      @ismaelgrimaldo2125 2 роки тому +3

      Lo leí como el meme del perro

    • @onepizzatcg
      @onepizzatcg 2 роки тому

      true

  • @parquesou8597
    @parquesou8597 2 роки тому +1

    Te confieso que estuve buscando durante horas por que no reconocia types.d.ts antes de terminar el video. Excelente como siempre Midu. Saludos desde Argentina

  • @matthewseidel4698
    @matthewseidel4698 2 роки тому +5

    llevaba mucho tiempo buscando como incorporar ts a node, gracias buen hombre por su tutorial

    • @midudev
      @midudev  2 роки тому +4

      Gracias a ti por comentar Matthew! Luchando contra el algoritmo!!!! 🤩

  • @guillemora7622
    @guillemora7622 2 роки тому +1

    He pagado por un curso de bettatech sobre esto que ojala pudiera borrarme de la cabeza para ver el tuyo....
    Eres bueno midu, un gran referente :)

  • @tomasponce9409
    @tomasponce9409 Рік тому

    La explicación que se da a partir del 23:30 es magistral. Me ayudó mucho. Gracias!

  • @2005bgva
    @2005bgva 10 місяців тому

    Midudev, si tendría que ponerte una calificación te habrías sacado: un millón / 100 . Excelente tutorial. gracias

  • @cristhophercerpas1332
    @cristhophercerpas1332 2 роки тому

    Tengo como 4 años de usar este "stack" es super útil.

  • @valentinbennitez
    @valentinbennitez 2 роки тому

    es que midu tiene los mejores videos para absolutamente todo, GENIO!

  • @Edsotohuamanhorcco
    @Edsotohuamanhorcco Рік тому

    jeje yo que ya habia visto el error desde que probe antes , pero esperando como lo encuentra terrible y no saber como decir ahi esta, ahi ahi (tremendo crack aprendi bastante recien estoy comenzando con typescript y me parecio muy bueno gracias a lo genial que lo explico )

  • @danielbernal3471
    @danielbernal3471 13 днів тому

    Me parece muy claro la forma en la que explicas el código.

  • @diegopolverelli1
    @diegopolverelli1 Рік тому

    Alto curso, Midudev...!!! espectacular...!!! Muchas gracias.

  • @arroniCode
    @arroniCode 2 роки тому +5

    Si no les auto fixea al guardar como a midu intenten esto en la configuracion de workspace de vscode:
    {
    "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
    },
    "eslint.validate": ["typescript"]
    }
    y aseguren tener instalada la extensión eslint de Microsoft

  • @rennyluzardo35
    @rennyluzardo35 Рік тому

    Yo guardaria el archivo utils.ts dentro de la carpeta libs. Excelente video he aprendido bastante, muchas gracias. 👍

  • @ariolverab
    @ariolverab Рік тому

    Super bien explicado, genial que dejes los errores para saber como encontrarlos. Muchas gracias Midu

  • @EMartinezOliver
    @EMartinezOliver 2 роки тому +4

    Muchas gracias por la sesión - ha sido muy entretenida. Solo una cosita. El try-catch en el servicio post en diaries.ts, ts no me compilaba el error del catch, ya que error era 'unknown object' Tuve que añadirle un if(error instanceof Error) message = error.message , else message = String(error) para que compilara. En el video no se como Miguel Angel lo ha podido compilar admitiendo que el error reciba cualquier cosa que no sea un objeto Error

  • @MaximoPower2024
    @MaximoPower2024 8 місяців тому +2

    El tema de las interfaces es que definen qué campos debe tener un objeto, pero no dicen nada de los que NO deben tener. Por eso, cuando usamos Omit, lo único que hace TypeScript es dejar de "garantizar" que ese campo exista. Pero no nos garantiza que NO exista. Hay que tener cuidado con eso.

  • @Benjamin-vv3br
    @Benjamin-vv3br 2 роки тому +2

    Eres increíble Midu!!!! Siempre se aprenden cosas nuevas en cada video 🚀

    • @midudev
      @midudev  2 роки тому +1

      Gracias Benjamin! 🤗

    • @RevolutionYourMusic
      @RevolutionYourMusic 7 місяців тому

      Hola quisiera aprender a desarrollar mi API, soy nuevo pero me agrada las prácticas y la idea de estar saludando al mundo. Graciass, eres bueno en lo q haces.

  • @januariopinto_
    @januariopinto_ 2 роки тому +5

    Estaría interesante un "walkthrough" por tu setup en vscode, a ver qué tal, veo que utilizas extensiones como "error lenses" que quizás no todos conozcan 🙂

    • @elcodigo4421
      @elcodigo4421 2 роки тому

      Gracias,estaba buscando esa extension.

  • @d-landjs
    @d-landjs Рік тому +2

    Excelente Midu, seria genial que hagas mas ejemplos con SOLID o DDD o clean architecture !

  • @gerstox
    @gerstox Рік тому

    Excelente, aprendo mucho de ti, gracias por todos tus aportes.

  • @giovanniadamo2967
    @giovanniadamo2967 Рік тому

    Excelente!!! Ahora una explicación con este mismo código de cómo se hace el deploy a AWS, usando Elastic B o quizás transformar esto a funciones lambda!

  • @juanhuenchun8908
    @juanhuenchun8908 2 роки тому +1

    Me encanto este bootcamp, Midudev, seria posible algo asi pero explicando como funciona y todas las opciones de usar authentication con token. Es decir Authorization y Authentication. Jamás nadie lo explica, y es algo que se utiliza mucho pero es dificil encontrar buena información en español al respecto. Estaría eternamente agradecido.
    }

  • @mrestrella4
    @mrestrella4 Рік тому

    Muy claro y conciso, super util!!! Muchas gracias!

  • @yoanestradablanco1608
    @yoanestradablanco1608 2 роки тому +2

    Esperandolo como cosa buena al fin llego eres un grande

    • @midudev
      @midudev  2 роки тому +2

      En nada y menos publico el de TypeScript + React. Y la semana que viene el de React Native. Y ya tendremos el bootcamp completo. :)

    • @yoanestradablanco1608
      @yoanestradablanco1608 2 роки тому

      @@midudev buenisimo mano con tu curso la verdad no sabes como has ayudado a personas como yo qeu soy cubano cn tu contenido gratuito y de calidad pk muchas personas hubieran pagado mucho dinero por este bootcamp

  • @ElvisSaavedra
    @ElvisSaavedra 2 роки тому +4

    Hola @midudev, genial tus videos, sólo una consulta, qué herramienta usaste en el minuto 1:13:38, veo que corres javascript y al lado derecho te aparece los resultados, pareciera un terminal de chrome pero creo equivocarme, saludos!

    • @juandaniel8828
      @juandaniel8828 2 роки тому +1

      creo que es RunJS

    • @ElvisSaavedra
      @ElvisSaavedra 2 роки тому +1

      @@juandaniel8828 si, pude encontrarlo, la versión free tiene pocas utilidades, igual es bueno, saludos

  • @fabriqr2930
    @fabriqr2930 Рік тому

    Con este cursito entendí mas de typescript

  • @juanpedrososa1118
    @juanpedrososa1118 2 роки тому

    Buenísimo el tutorial midudev, me sirvió un montón. Gracias por compartir tus conocimientos.

  • @richieespinoza6093
    @richieespinoza6093 2 роки тому +1

    Justo el fin de semana estaba buscando como hacer esto, midu lee mentes dev

    • @midudev
      @midudev  2 роки тому +1

      Me llegan notificaciones al móvil jajajajaja

    • @richieespinoza6093
      @richieespinoza6093 2 роки тому

      @@midudev jajaja crack

  • @eduardoemanuelherrerapech6608
    @eduardoemanuelherrerapech6608 5 місяців тому

    Hola MIDU muchas gracias por tus explicaciones eres grande ❤

  • @antoniomontalvo2315
    @antoniomontalvo2315 Рік тому

    Excelente video muy didáctico, una pregunta tendrás algún vídeo donde muestres como generar el build para producción del proyecto??? Gracias por compartir tu conocimiento. Saludos.

  • @OscarMG14
    @OscarMG14 Рік тому

    Muy buen video Midu justamente lo que buscaba, muchas gracias!

  • @kongcengchen4315
    @kongcengchen4315 2 роки тому +1

    Hola Midu! Excelente curso ¿Que extensión usas para que te de una previsualización de lo que te devuelve la función?

  • @OSCARCORTEZVILLCA
    @OSCARCORTEZVILLCA 8 місяців тому

    La estoy pasando genial con tus tutos, Cual extension es para ver === como 3 lineas y el => como una flecha real? gracias :)

  • @homermoncayo5774
    @homermoncayo5774 2 роки тому +1

    Excelente vídeo!!, tus explicaciones son las mejores

  • @joansebastiancarrillobaron8014

    Estuvo genial este tutorial saludos desde Colombia midu

  • @MRALEX11YT
    @MRALEX11YT 2 роки тому +1

    ¿Porque no haces un short enseñando a configurar la terminal que ulitilizas? Mola mucho.

  • @martinlupa8692
    @martinlupa8692 2 роки тому +1

    Gracias midu!! Siempre excelente material!!

    • @midudev
      @midudev  2 роки тому

      Gracias a ti por comentar, Martin!

  • @moisesfreites8107
    @moisesfreites8107 2 роки тому +4

    Un curso de React con TypeScript seria genial

    • @midudev
      @midudev  2 роки тому +8

      La próxima clase es esa ☺️

    • @thisMonje
      @thisMonje 2 роки тому

      @@midudev Cuando saleeeeeeeeeeeeeeeeeeeeee? :(

  • @adrian.vasquez.2002
    @adrian.vasquez.2002 2 роки тому

    otro videito de midu a la lista, grande! psdt: una pasada el nuevo ordenador

  • @waldo21m
    @waldo21m 2 роки тому

    Excelente contenido compadre :D ya sabía las bases de TS pero hoy aprendí mucho con demasiado

  • @patricianunezlobo6831
    @patricianunezlobo6831 Рік тому

    Gracias Midu Pick y Omit, grandes aliados

  • @עמנואלספרד
    @עמנואלספרד 2 роки тому

    muchas gracias por esta clase

  • @MRALEX11YT
    @MRALEX11YT 8 місяців тому

    Midu una pregunta, ¿tu tenías un video en el que enseñabas a hacer un servidor con node, express, nodemon, morgan y babel? Es que tengo un proyecto que jugararía haberlo hecho viendo ese video y no encuentro el video. Gracias.

  • @theblack014
    @theblack014 2 роки тому +1

    Eres un crack Midu!! gracias!!

  • @samuelmartineza3276
    @samuelmartineza3276 2 роки тому

    Midu, eres un crack, gracias por tus videos y aportes, Saludos desde Mexico. Te invite a teotihuacan cuando veniste pero no me contestaste, la invitacion esta aun.

  • @lazamh4869
    @lazamh4869 Рік тому

    Me hubiera gustado que levantaras los Unit test ya que es super importante

  • @jehufrayle
    @jehufrayle 2 роки тому

    Typescript es como tener un amigo viéndote escribir código y señalándote posibles errores, me encanta 🤣.

  • @josedanielsarmiento8870
    @josedanielsarmiento8870 2 роки тому +1

    Interesante video, me quedo una duda, cuando tipaste el objeto diaries, tambien es viable realizar un enum con los posibles tipos de clima(weather)? O es una mala practica?

    • @midudev
      @midudev  2 роки тому +1

      Claro. Sería buena idea hacer un enum si los valores del weather son finitos y conocidos.

  • @adrianmontilla5626
    @adrianmontilla5626 2 роки тому +2

    cómo se llama ese tema de color de la tipografía que utilizas? y el tipo de letras también?

  • @josecarlosgarcia6477
    @josecarlosgarcia6477 2 роки тому

    Hola!!! excelente clases como siempre. me gustaria pregunarte algo, no podemos validar los campos que entran por el Request con una clase Validator??

  • @axcelcorona5472
    @axcelcorona5472 2 роки тому +1

    GRACUAS MIDU
    TE NECESITABA

    • @midudev
      @midudev  2 роки тому +2

      NOS necesitábamos. 🤗

  • @IDandT
    @IDandT Рік тому

    Genial el vídeo. Así a ojo me ha quedado una duda y es porque las funciones isString e isDate reciben un string, y si no debería ser un any. Por lo demás increíble

  • @delpo27
    @delpo27 Рік тому

    sos un tipazo

  • @prodrigu75
    @prodrigu75 2 роки тому +1

    En lo personal me ha gustado este video. Sin embargo tengo una consulta y una crítica.
    La consulta es: Typescript me marca error al asignar a la constante diaries el Array. Pero me "sugiere" que en vez de igualarla a diaryData as Array utilice diaryData as unknown as Array

    • @elritchie928
      @elritchie928 Рік тому

      Me paso lo mismo x), no sé porque jajaja

  • @maicolavila5464
    @maicolavila5464 Рік тому

    Genial!, consulta el repositorio esta?

  • @leonardonorambuena2172
    @leonardonorambuena2172 2 роки тому

    Excelente el vídeo, ¿para trabajar con bases de datos recomiendas un ORM o trabajar directamente con las bases de datos?
    gracias por compartir tus conocimientos, saludos cordiales.

    • @oscargm1979
      @oscargm1979 2 роки тому

      Siempre que puedas usa un ORM

  • @Arturo-gr6xj
    @Arturo-gr6xj 2 роки тому

    Muy buen tuto, muy ameno. No sería mejor en los casos que vas a comprobar si son de un tipo u otro definir los argumentos de esas funciones como any o unknown? Realmente no sabes el tipo de lo que te va a llegar por parámetro y dentro de la función lo que haces es comprobar si son de un tipo o no para retornar algo.

  • @mondradev
    @mondradev 2 роки тому

    Excelente ese Omit y Pick 👍🏻

  • @hlcxpl
    @hlcxpl 8 місяців тому

    hola saludos se puede utilizar la libreria canary para trabajar con con typescript podrías hacer un video sobre la configuración saludos!!!

  • @JOSECMORENO3D
    @JOSECMORENO3D 3 місяці тому

    Tienes elmismo curso para js? Graacias de antemano

  • @rauljaimes7110
    @rauljaimes7110 11 місяців тому

    @midudev: deberías dejar el archivo Json que usas para que los próximos que vienen aprender sigan paso a paso

  • @nicocontigliani7141
    @nicocontigliani7141 2 роки тому

    muchas gracias!!! muy buen video

  • @eR1cK92
    @eR1cK92 2 роки тому

    Uff comencé aprendiendo con java y tenía su complicación y ahorita que trabajo con Node me parece más.complicado , aunque en java tipeas todo en realidad el IDE se encarga de eso y es mucho más fácil saber con qué estás trabajando

  • @santicanabalramos667
    @santicanabalramos667 2 роки тому +1

    Muy buen video Midu!

    • @midudev
      @midudev  2 роки тому +1

      Gracias Santi!!! La semana que viene sale el de React :)

  • @desarrolladorhoy
    @desarrolladorhoy 2 роки тому

    Está genial, muchas gracias por tus vídeos ... Una pregunta: en el router.get('/:id' ... es necesario poner un return al final, yo no lo puse y me funcionó perfectamente, y si es así ¿Cuál es la diferencia?
    Lo pregunto porque en los otros router.get() simplemente pones un res.send() y no un return res.send()
    diary != null ? res.send(diary) : res.status(404).send(`No esxiste el id: ${req.params.id}`)

  • @moonslidme7792
    @moonslidme7792 2 роки тому +1

    Vale mil este video!!

    • @midudev
      @midudev  2 роки тому +1

      🙇‍♂️ Gracias Dyers!!!!

  • @codigito
    @codigito Рік тому

    y no hay una opcion para que no te deje poner los switch :) enhorabuena por los videos !

  • @joelapablaza7722
    @joelapablaza7722 Рік тому

    Mientras mas veo typescript mas veo C#. Me genial que reconozcan que c# es genial jejeje

  • @CarlosMafifa
    @CarlosMafifa 10 місяців тому

    Midu, perdon la pregunta. Que fuente usas???

  • @mariopena5443
    @mariopena5443 2 роки тому

    Muchas gracias MIdu!

  • @rokenbupolecat
    @rokenbupolecat Рік тому

    Buscabas un tutorial de como hacer un API, pero No!! Era yo!, Un tutorial de Typescript!!!
    Xd gracias

  • @danielpreza4159
    @danielpreza4159 2 роки тому +1

    está muy bien el curso pero falta tocar temas de middleware, controllers entre otros

  • @paoloose
    @paoloose 2 роки тому +1

    qué bonito es typescript, me recuerda a la casa

    • @midudev
      @midudev  2 роки тому +1

      Tooootalmente

  • @estebangomez3799
    @estebangomez3799 2 роки тому +1

    Jajajajajaja apenas ví que ''req' desplegaba las opciones me puse demasiado feliz

    • @midudev
      @midudev  2 роки тому

      Tooootalmente! :)

  • @dorianbrocher3669
    @dorianbrocher3669 Рік тому

    Gracias.

  • @mDep_
    @mDep_ 2 роки тому +1

    Excelente!

  • @parkin09kinder
    @parkin09kinder 2 роки тому

    Buena infooo Midu!!!
    Graciassss

    • @midudev
      @midudev  2 роки тому

      Gracias a ti!!

  • @miguelangelochoarivera566
    @miguelangelochoarivera566 2 роки тому +1

    Hola midu, pedazo de video y la explicacion mejor, cual es la extension para remarcar esos warnig y error que mola mucho

  • @davidarteaga1838
    @davidarteaga1838 2 роки тому

    Excelente contenido

  • @franciscolagorio6757
    @franciscolagorio6757 Рік тому

    Hola ! No entiendo al final la diferencia entre haber hecho el map directamente en el getEntries ya que el comment sale tambien el NonSensitive....

  • @gussware4177
    @gussware4177 2 роки тому +2

    Una pregunta, como hizo lo de guardar y que el linter formateara el codigo

    • @hendersonfranco1851
      @hendersonfranco1851 2 роки тому +1

      A mi tampoco me funciono

    • @emilielrubio7065
      @emilielrubio7065 2 роки тому +1

      Mírate esto, a mi me ha funcionado:
      www.aleksandrhovhannisyan.com/blog/format-code-on-save-vs-code-eslint/#3-formatting-on-save-in-vs-code-with-eslint

    • @leadavfar
      @leadavfar 2 роки тому

      @@emilielrubio7065 Gracias!

  • @RodrigoMorenoIngenieria
    @RodrigoMorenoIngenieria Рік тому

    Que extensión es la que te dice 0 complementación encima de las interfaces?

  • @S4MBENTZ
    @S4MBENTZ 2 роки тому +1

    excelente

  • @abrahamrodriguezventura3848

    Que theme usa? me gusta mucho el diseño

  • @alexdevorigin1
    @alexdevorigin1 Рік тому +1

    tengo una duda si escribo el codigo en TS -> se convierte a JS que sentido tiene si node correria es el en start JS y en dev en TS, lo digo en el caso de correr solo TS sin convertir a JS y ya ?

  • @AAMH14
    @AAMH14 2 роки тому

    Hola, que extension usas para que te escriba los errores en rojo a un lado del codigo? saludos!

  • @jjime98
    @jjime98 Рік тому

    A lo mejor ya te lo han preguntado mil veces pero acabo de llegar. Cuál es la app que utilizas como consola??? Tiene algo de especial? Graciass

  • @MRALEX11YT
    @MRALEX11YT 2 роки тому

    Y otro short enseñando las mejores librerias para desarrollar react en vscode

  • @el.bromas
    @el.bromas Рік тому

    Te quiero bro

  • @martinaa586
    @martinaa586 2 роки тому +1

    buen video midu!! que fuente es la que usas en tu editor?

    • @midudev
      @midudev  2 роки тому +2

      Cascadia Code! La mejor :D

    • @martinaa586
      @martinaa586 2 роки тому

      @@midudev siempre el mejor usando lo mejor 🙌 gracias! Y saludos desde argentina 🇦🇷

  • @maximilianofernandez3937
    @maximilianofernandez3937 2 роки тому +1

    min 48:45 Una pregunta: de que sirve hacer un tipo si de todos modos nos devuelve el objeto que no esperamos? no es más facil trabajar con la interface normal y hacer el return de lo que necesitamos directamente?

    • @XlON___
      @XlON___ 2 роки тому

      Lo mismo pense pero no encontre respuesta en los comentarios