📘 Tutorial TypeScript con Node.js y Express. ¡Crea tu API REST con tipos estáticos DESDE CERO!
HTML-код
- Опубликовано: 4 окт 2024
- Aprende a crear una API REST con Node.js, Express y tipos, gracias a TypeScript.
Clase basada en el original FullStack Open que tiene toda la atribución al contenido de la clase: fullstackopen....
🔷 ¿No sabes TypeScript? ¡Revisa la clase anterior!
• TypeScript - Tutorial ...
📚 Todas las clases del FullStack Bootcamp JavaScript:
• 🧑💻 Presentación del c...
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!
Hola si gustas me puedes escribir yo soy autodidacta y logre tener éxito en mi carrera profesional
Uff bro eres el impulso que me faltaba para continuar estudiando, la forma en la que explicas es excelente !!
😊😊😊 gracias Mateo!!
Te quiero mucho midu, eres todo lo que esta bien en el desarrollo de software
Qué bonito. Gracias Carlos. Estos comentarios ayudan mucho. 🥲
Lo leí como el meme del perro
true
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
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
Muchas gracias, Cristian!!!!
`[
{
"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"
}
]`
Thanks bro! :D
Geniooo!!
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!
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
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.
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 RUclips. Sigue así.
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
llevaba mucho tiempo buscando como incorporar ts a node, gracias buen hombre por su tutorial
Gracias a ti por comentar Matthew! Luchando contra el algoritmo!!!! 🤩
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 :)
La explicación que se da a partir del 23:30 es magistral. Me ayudó mucho. Gracias!
es que midu tiene los mejores videos para absolutamente todo, GENIO!
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
Gracias!
Tengo como 4 años de usar este "stack" es super útil.
Alto curso, Midudev...!!! espectacular...!!! Muchas gracias.
Midudev, si tendría que ponerte una calificación te habrías sacado: un millón / 100 . Excelente tutorial. gracias
Super bien explicado, genial que dejes los errores para saber como encontrarlos. Muchas gracias Midu
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
Eres increíble Midu!!!! Siempre se aprenden cosas nuevas en cada video 🚀
Gracias Benjamin! 🤗
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.
Excelente Midu, seria genial que hagas mas ejemplos con SOLID o DDD o clean architecture !
Esperandolo como cosa buena al fin llego eres un grande
En nada y menos publico el de TypeScript + React. Y la semana que viene el de React Native. Y ya tendremos el bootcamp completo. :)
@@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
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 )
Hola MIDU muchas gracias por tus explicaciones eres grande ❤
Excelente, aprendo mucho de ti, gracias por todos tus aportes.
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 🙂
Gracias,estaba buscando esa extension.
Excelente video! Super claro y directo, me ha servido muchísimo como ejercicio para repasar bases de TS! 👏👏
Excelente!
Justo el fin de semana estaba buscando como hacer esto, midu lee mentes dev
Me llegan notificaciones al móvil jajajajaja
@@midudev jajaja crack
Yo guardaria el archivo utils.ts dentro de la carpeta libs. Excelente video he aprendido bastante, muchas gracias. 👍
Muy claro y conciso, super util!!! Muchas gracias!
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.
}
Excelente vídeo!!, tus explicaciones son las mejores
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.
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!
Muy buen video Midu justamente lo que buscaba, muchas gracias!
¿Porque no haces un short enseñando a configurar la terminal que ulitilizas? Mola mucho.
Excelente contenido compadre :D ya sabía las bases de TS pero hoy aprendí mucho con demasiado
Con este cursito entendí mas de typescript
cómo se llama ese tema de color de la tipografía que utilizas? y el tipo de letras también?
Cuando hago la parte de const {comment, restOfDiary} = entry, me dice: Property 'comment' does not exist on type 'DiaryEntry | undefined'.
Intenta poner: const {comment, ...restOfDiary } = diary as DiaryEntry, a mi me funcionó así, la verdad no se como hice Midudev jeje 😅
Gracias Midu Pick y Omit, grandes aliados
otro videito de midu a la lista, grande! psdt: una pasada el nuevo ordenador
Una pregunta, como hizo lo de guardar y que el linter formateara el codigo
A mi tampoco me funciono
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
@@emilielrubio7065 Gracias!
Gracias midu!! Siempre excelente material!!
Gracias a ti por comentar, Martin!
Un curso de React con TypeScript seria genial
La próxima clase es esa ☺️
@@midudev Cuando saleeeeeeeeeeeeeeeeeeeeee? :(
Hola! No se si soy el único pero quedé aquí por días y no logro salir... No logro quitar "comment" en el findById() por este error: Property 'comment' does not exist on type 'DiaryEntry | undefined'.ts(2339)
trata especificando el type como objeto: const {id, comment, ...restOfDiary } = diary as DiaryEntry, a mi me pasó igual 😅
@@calceta888 Muchisimas gracias, tambien andaba atascado ahi ):
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.
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
Me paso lo mismo x), no sé porque jajaja
muchas gracias por esta clase
GRACUAS MIDU
TE NECESITABA
NOS necesitábamos. 🤗
Eres un crack Midu!! gracias!!
Gracias a ti!
Estuvo genial este tutorial saludos desde Colombia midu
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!
creo que es RunJS
@@juandaniel8828 si, pude encontrarlo, la versión free tiene pocas utilidades, igual es bueno, saludos
La estoy pasando genial con tus tutos, Cual extension es para ver === como 3 lineas y el => como una flecha real? gracias :)
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.
Me hubiera gustado que levantaras los Unit test ya que es super importante
Typescript es como tener un amigo viéndote escribir código y señalándote posibles errores, me encanta 🤣.
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 ?
Buscabas un tutorial de como hacer un API, pero No!! Era yo!, Un tutorial de Typescript!!!
Xd gracias
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
Excelente ese Omit y Pick 👍🏻
@midudev: deberías dejar el archivo Json que usas para que los próximos que vienen aprender sigan paso a paso
hola saludos se puede utilizar la libreria canary para trabajar con con typescript podrías hacer un video sobre la configuración saludos!!!
Segui los pasos hasta el minuto 23:00 y ya no pude continuar porque aunque haya puesto en la configuracion resolveJsonModule, de igual manera no me lee los datos del json, me sigue apareciendo el mismo error. Alguien sabe como puedo solucionar?
Me paso lo mismo pero reinicie vscode y me funciona
Hola Midu! Excelente curso ¿Que extensión usas para que te de una previsualización de lo que te devuelve la función?
muchas gracias!!! muy buen video
Vale mil este video!!
🙇♂️ Gracias Dyers!!!!
está muy bien el curso pero falta tocar temas de middleware, controllers entre otros
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
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.
Hola ! No entiendo al final la diferencia entre haber hecho el map directamente en el getEntries ya que el comment sale tambien el NonSensitive....
Hola, alguien sabe cómo poner los mensajes del eslint en la misma línea de código como le sale a Midu en su editor?
no soy ningún pro en ts, pero en esta parte 48:28, qué sentido tiene hacer tu propio tipo excluyendo los campos si luego te toca manual especificarlos, no es lo mismo usar `DiaryEnty` y filtrar con map?
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.
Muy buen video Midu!
Gracias Santi!!! La semana que viene sale el de React :)
qué bonito es typescript, me recuerda a la casa
Tooootalmente
sos un tipazo
Muchas gracias MIdu!
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?
Lo mismo pense pero no encontre respuesta en los comentarios
Jajajajajaja apenas ví que ''req' desplegaba las opciones me puse demasiado feliz
Tooootalmente! :)
y no hay una opcion para que no te deje poner los switch :) enhorabuena por los videos !
Tienes elmismo curso para js? Graacias de antemano
Excelente!
Buenas alguno sabe que terminal es la que usa?. o si esta usando algun tema en particular
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}`)
Que extensión es la que te dice 0 complementación encima de las interfaces?
Y otro short enseñando las mejores librerias para desarrollar react en vscode
Midu, perdon la pregunta. Que fuente usas???
Hola midu, pedazo de video y la explicacion mejor, cual es la extension para remarcar esos warnig y error que mola mucho
dejo ward
Es el linter
Hola brother, he estado intentando crear mi api pero cuando intento ejecutar el archivo package Jason para crear una petición no hay respuesta en la terminal. A qué se debe ésto??
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?
Claro. Sería buena idea hacer un enum si los valores del weather son finitos y conocidos.
Genial!, consulta el repositorio esta?
buen tutorial compañero, pero sólo ha faltado cómo grabar en el archivo json los cambios que haces con las peticiones!
Cual es esa extension que al sombrear el error/varable/parametro te aparece todas las opciones/tipos disponibles ?
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
Te quiero bro
Hola!!! excelente clases como siempre. me gustaria pregunarte algo, no podemos validar los campos que entran por el Request con una clase Validator??
Buena infooo Midu!!!
Graciassss
Gracias a ti!!