Тёмный

Backend de productos (API sencilla) con Node y Mysql 

Punto Json
Подписаться 3,8 тыс.
Просмотров 11 тыс.
50% 1

En este video vamos a tomar el proyecto de la semana pasada y vamos a crearle un backend simple, donde nos vamos a conectar con una base de datos para obtener los datos de los productos de nuestra tienda. Vamos a trabajar el back con javascript en node.
ATENCIÓN
Para todos aquellos que tienen el error "ER_NOT_SUPPORTED_AUT­H_MODE", lo que tienen que hacer es reinstalar o modificar la instalación de mysql y elegir el modo de autenticación legacy. Tienen que elegir la segunda opción de la imagen que dejo a continuación: www.oreilly.com/api/v2/epubs/...
Mirá la primera parte!: • Programa un carrito de...
Aprendé como usar el async/await y fetch: • La manera más sencilla...
Descargate el front final del video pasado: github.com/cacalo/Productos-y...
Mirá el código final: github.com/cacalo/Productos-y...
Timestamps:
00:00 - Intro
02:45 - Instalación de dependencias
06:13 - Primer GET en la API
11:17 - Actualizar con Nodemon
14:37 - Ver solicitudes con Morgan
18:07 - Creación de base de datos
23:03 - Conexión node-mysql (primera parte)
24:19 - Variables de entorno con dotenv
26:36 - Conexión node-mysql (segunda parte)
31:55 - Mostrar datos en frontend (primera parte)
34:01 - Solucionar problemas de CORS
36:10 - Mostrar datos en frontend (primera parte)
39:46 - Comprar carrito - Backend
44:55 - Comprar carrito - Frontend
51:51 - Refactorización comprar carrito
54:01 - Saludo

Опубликовано:

 

15 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 86   
@puntojson
@puntojson 9 дней назад
Para todos aquellos que tienen el error "ER_NOT_SUPPORTED_AUT­H_MODE", lo que tienen que hacer es reinstalar o modificar la instalación de mysql y elegir el modo de autenticación legacy. Tienen que elegir la segunda opción de la imagen que dejo a continuación: www.oreilly.com/api/v2/epubs/9781492085911/files/assets/lm2e_0121.png
@ivopavloff4795
@ivopavloff4795 2 дня назад
hola, excelente , zarpado lo tuyo,me encanta. Tengo el problema que cuando llego a conectar a la base me tira esa adverencia, y no puedo solucionarlo
@puntojson
@puntojson День назад
@@ivopavloff4795 Gracias por el mensaje :) Ahí te contesté en tu otro comentario!
@yahyaly5228
@yahyaly5228 9 дней назад
Todo solucionado, y todo superbién explicado. 100/10
@puntojson
@puntojson 8 дней назад
Perfecto entonces! Gracias!
@luisfernandocantorpinzon869
@luisfernandocantorpinzon869 3 месяца назад
Que buenos videos los tuyos, es difícil encontrar formas de transmitir el conocimiento de forma elocuente y concreta como la tuya, gracias por esta guía tan buena!!
@puntojson
@puntojson 11 дней назад
Fuaaaa, gracias por semejante comentario!
@ivopavloff4795
@ivopavloff4795 12 дней назад
increiblemente claro! buenisimo
@puntojson
@puntojson 11 дней назад
Grcias Ivo!
@marceloguerra1272
@marceloguerra1272 22 дня назад
Gracias Calo, un verdadero maestro. Estaría bueno ese proyecto de un eCommerce full stack.... Me gusto la idea. Saludos.
@puntojson
@puntojson 11 дней назад
Agrego un voto para ecommerce full stack. Mientras tanto ya tengo un curso largo preparado para ya arrancar a filmar pronto, pero va a ser de otra cosa. Saludos!
@sabripereira
@sabripereira Год назад
Excelente! Que bueno que incluiste algo de lo de back al final, me viene joya! Graciass 😀
@puntojson
@puntojson Год назад
A pedido del público 😊
@carolinasalomrivero4788
@carolinasalomrivero4788 7 месяцев назад
Desde ayer empecé a ver tus videos y eres bastante claro, justo lo que estaba buscando. Muchas gracias!
@puntojson
@puntojson 7 месяцев назад
Claridad es una de las cosas a las que apunto, por eso mis videos suelen ser tan largos. Hago lo mejor que puedo para que quien no sabe tanto pueda entender todo, y quien ya es más experimentado pueda ver mi video en 1.5x
@FJ-vq7jk
@FJ-vq7jk 11 месяцев назад
fuiste de gran ayuda sobre todo porque no tenia idea de como empezar en el back-end
@puntojson
@puntojson 11 месяцев назад
Espero que esto te de una buena idea! Obviamente con el tiempo cuando vayas aprendiendo vas a ver que como lo hice acá es "fácil" y no 100% completo, pero por ahora es suficiente!
@arturoguerineau5006
@arturoguerineau5006 2 дня назад
Que locura que un profe en youtube enseñe mejor que mis profesores de universidad privada, que me piden un e-commerse habiendome enseñado a arrastrar labels en un forms web o window jajsjaj
@puntojson
@puntojson День назад
Yo también doy clases en la universidad privada, osea que tu comentario es una paradoja y ahora todo va a explotar jajaj Uno hace lo que puede con lo que tiene, ojalá puedas hacer tu ecommerce y ojalá a tus profes o a sus superiores les entre un poco más de razón :)
@arturoguerineau5006
@arturoguerineau5006 День назад
@@puntojson jajsjsj, igual iba más por el lado de pagarles para que me enseñen ese tipo de cosas..., no descartó que si hay muy buenos profesionales en toda universidad publica o privada.
@puntojson
@puntojson День назад
Yo di en los dos tipos de universidades, e hice toda mi carrera en la pública, dejame decirte que los profes muchas veces son los mismos y hay mejores y peores en ambos lados, conozco casos extremos para profes buenos y malos en todos lados. Ojalá te encuentres profes de los buenos en las materias que siguen
@arturoguerineau5006
@arturoguerineau5006 День назад
@@puntojson gracias bro, y en caso de que no pase me motiva que allán personas como vos que sin necesidad que nadie les pida ni recibir grandes cosas a cambio compartan sus conocimientos
@claaronutri9952
@claaronutri9952 11 месяцев назад
👏que buen video. Muy clara tu explicación!
@puntojson
@puntojson 11 месяцев назад
Me alegro de que te haya gustado! Nos vemos en el próximo qué vamos a usar cosas de este!
@gabrielsaucedo244
@gabrielsaucedo244 5 месяцев назад
Hola profe, muy buen video, muy claro y completo, muchas gracias !
@puntojson
@puntojson 5 месяцев назад
Gracias Gabriel! Te mando un saludo
@OctavioTb538
@OctavioTb538 5 месяцев назад
Me suscribo estoy aprendiendo node js y tus videos me han ayudado. Mucho en este camino de aprendizaje
@puntojson
@puntojson 5 месяцев назад
Joya! Me alegra poder ayudarte! Suerte en tu camino
@jesusgregroriosolapaz6356
@jesusgregroriosolapaz6356 Месяц назад
Muy bien amigo. Eres un maestro enseñando. Gracias y saludos
@puntojson
@puntojson 11 дней назад
Gracias Jesús! Saludos
@matiasrastelli3811
@matiasrastelli3811 Год назад
Excelente Calo, estoy haciendo un curso de backend y me viene de 10 que empieces a meter contenido de esto! Lo de front ya me lo vi y use de todo jaja
@puntojson
@puntojson Год назад
Lo de hoy es muy básico, asique ya tengo algunas ideas para hacerlo más complejo. Le voy a meter un poco de pilas.
@simonkdsz6164
@simonkdsz6164 8 месяцев назад
como no me recomendo antes el algoritmo de youtube tu canal lrpm , nuevo sub
@puntojson
@puntojson 8 месяцев назад
Graciasss! Nos vemos en otros videos!
@pablogarcia9487
@pablogarcia9487 Год назад
Muchas gracias Calo!
@puntojson
@puntojson Год назад
Gracias a tí don Pablín
@Eibots219
@Eibots219 Год назад
Gracias por la parte de Backend, clave
@puntojson
@puntojson Год назад
Con gusto
@LeandroVildoza
@LeandroVildoza 5 месяцев назад
Excelente!!!!
@puntojson
@puntojson 5 месяцев назад
Graciass!
@arturoguerineau5006
@arturoguerineau5006 6 часов назад
Profe, si yo quiero clonar este repositorio en mi studio code, que tengo que hacer para que se ejecute toda la parte del back? Instalar node y mysql? O necesito ejecutar ciertos comandos del node y demas. O mejor aun si puedes darme un paso a paso para cloanrlo y que funcione jqja
@kuribohize
@kuribohize Год назад
excelente!
@puntojson
@puntojson Год назад
Gracias por estar!
@kuribohize
@kuribohize Год назад
@@puntojson gracias a usted profe!
@jorgedanielbrizuela5608
@jorgedanielbrizuela5608 10 месяцев назад
Hola Calo. Me encantó la explicación, es algo que nadie explica (la integración del Front con el Back), te felicito porque es de mucha ayuda para los que estamos aprendiendo. Felicitaciones. Quiero aprovechar para consultarte, en el minuto 32:08 al decir que no se debe cerrar el back mientras se edita el front, te referis a abrir otra instancia del VB Code?
@puntojson
@puntojson 10 месяцев назад
Gracias por tu mensaje! No importa si cerramos la instancia de VS code con el back, lo no que no tenemos que hacer es cerrar la consola que esté ejecutando el back. Si la consola la abriste desde vscode entonces no cierres el vscode del back, si la consola la abriste desde un CMD o powershell, o cualquier consola aparte, entonces no tenés que cerrar eso, porque sino cuando el front quiera consultar datos al back, el back no va a existir.
@jorgedanielbrizuela5608
@jorgedanielbrizuela5608 10 месяцев назад
@@puntojson Muchas gracias Calo. Por la pronta respuesta. Felicitaciones de nuevo por este contenido.
@solangelac3415
@solangelac3415 5 месяцев назад
Pintó maraton de videos de calo
@puntojson
@puntojson 5 месяцев назад
😊😊😊
@EliezerSarmiento-jw9tj
@EliezerSarmiento-jw9tj 4 месяца назад
Buenas gracias por compartir tanto conocimiento. pero tengo una pregunta. Por cada tabla que tenga que consultar tendría que hacer un app.get diferente apuntando con el nombre de la tabla.. no abra una forma de colocar el nombre de la tabla en una variable? que se envíe con el método get para elegir la tabla?
@puntojson
@puntojson 11 дней назад
Buenas! Sí, tu pensamiento es lógico y tiene mucho sentido. Se puede hacer una función común con todo si todos los métodos van a ser parecidos, pero eso tiene una contra a gran escala, que es que a veces las tablas tienen nombres feos, a veces las tablas se acceden/gettean de distintas maneras, y no siempre el mísmo metodo sirve para todo, además de que a veces queremos tener todo el código de una tabla en un mismo lugar para mantenerlo. Si tu proyecto es chico, tu enfoque es mucho mejor, si el proyecto es grande y complejo, no te va a quedar otra que tener gets para cada tabla. Saludos!
@abrahamolsen5340
@abrahamolsen5340 Год назад
Muy buen video, me gusto mucho, otra cosa, creo que no pasaste el link en donde explicas lo del async, req y res, por cualquier cosa, no se si seria bueno ponerlo en la descripcion o en los comentarios como fijado, me serviriam ucho ya que estoy adentrandome en este mundo y entiendo muy poco xd
@puntojson
@puntojson Год назад
Ufa! Lo tengo puesto como una tarjeta pero no se me muestra ¬¬ ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-KABu6tVlgmI.html Acá está el video en cuestión! Gracias por avisar!
@daissyfigueroa2944
@daissyfigueroa2944 6 месяцев назад
Hola esta buenisimos tus videos, pregunta en el minuto 39:22 donde cabia lo de la imagen de donde sale o como se que ponerle en urLImagen, muchas gracias
@puntojson
@puntojson 6 месяцев назад
Buenas! Hay una mezcla de cosas para tener en cuenta: 1) La información de cada bicicleta está guardada en una base de datos, esa tabla en la base de datos tiene una columna que es urlImagen. 2) El backend de nuestro proyecto lee la información de la base de datos y se la comunica al front. 3) El front accede a la información del back utilizando el método getBicicletas() del archivo productosService.js Con todo este camino vemos los nombres de las propiedades que podemos usar. Si querés revisar lo que estás recibiendo del backend podés abrir el inspector de tu navegador, entrar a la pestaña de "red" o "network" y mirar las comunicaciones con el backend. Ahí está todo! Avisame si no fui suficientemente claro. Saludos!
@andresx3419
@andresx3419 7 месяцев назад
Hola Calo, me salió este error al intentar establecer la conexión: Unhandled rejection Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client. Investigando un poco parece que dr produce cuando el cliente MySQL intenta establecer una conexión con el servidor MySQL y descubre que el servidor está utilizando un modo de autenticación que no es compatible con el cliente. Nose si podrías ayudarme, talvez con una dependencia más actualizada o nose si es por mmi versión de mySQL.
@puntojson
@puntojson 7 месяцев назад
Buenas Andrés! Eso sucede porque el plugin de mysql se quedó viejo :/ Cuando instalás mysql workbench en tu compu hay un paso donde dice "tipo de autenticación" y ahí tenés que poner la versión "vieja" e "insegura". Sino, tenés que instalar otros drivers para mysql como "mysql2" que tengo entendido que funciona con la autenticación nueva. Si lo googleás vas a ver que es un problema bastante común.!
@axelhernandez7685
@axelhernandez7685 2 месяца назад
Hola calo Tengo una duda con el archivo .env, los datos que debo poner ahí, en host debo poner como tal localhost o la dirección que me aparece en workbench, en database es el nombre de la sheme que creamos para las bicicletas?, el usuario y la contrasenia son los que puse al instalar workbench?
@puntojson
@puntojson 11 дней назад
Todo lo que pusiste es correcto. HOST=localhost DATABASE=productos USER=root (o uno válido) PASSWORD=XXXXXXX
@arturobaduna3911
@arturobaduna3911 5 месяцев назад
che a mi me da un error que estás enfrentando parece estar relacionado con la autenticación en MySQL. A alguien le paso?
@puntojson
@puntojson 5 месяцев назад
Sí, a mí! Abrí el instalador de mysql y poné modificar, o borralo y volvé a instalar todo. Cuando te pregunte por la autenticación tenés que elegir el modo antiguo menos seguro. Es eso o tenés que usar otra librería más moderna para mysql. Lamentablemente la oficial no la actualizan tanto...
@pachooon1
@pachooon1 4 месяца назад
Se puede usar postgreSql??y funcionaria igual?
@puntojson
@puntojson 11 дней назад
Sisi, hay que cambiar el driver/conector de nodeJs con la base de datos, pero se puede usar cualquier base de datos que tenga una librería de javascript (es prácticamente el 100% de gestores de bases de datos que hay)
@danielfranchi8436
@danielfranchi8436 2 месяца назад
Los que tienen el error 'ER_NOT_SUPPORTED_AUTH_MODE', es porque MYSQL esta utilizando un metodo de autenticacion no soportado con la app con NODEJS. SOLUCION: 1_Inicia sesión en tu servidor MySQL como administrador. 2_Ejecuta el siguiente comando SQL para actualizar el método de autenticación de los usuarios: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ' ingresa tu password aca ' 3_Ejecutar el siguiente comando: FLUSH PRIVILEGES;
@puntojson
@puntojson 11 дней назад
Gracias por aclarar! Para la próxima ni uso mysql porque está generando demasiado problema..!
@walterdiaz6963
@walterdiaz6963 Месяц назад
Hola, Alguien me podria ayudar con el codigo. No me funciona Por favor, si aguien puede
@puntojson
@puntojson 11 дней назад
Buenas! Te puedo ayudar pero necesito información! Por empezar querría saber si tenés un error en consola, o qué estabas haciendo cuando empezaste a tener el error. Saludos!
@g4bri3ltt88
@g4bri3ltt88 4 месяца назад
Amigo yo tengo otro problema que es ER_ACCESS_DENIED_ERROR: Access denied for user 'root;'@'localhost' (using password: YES), pero supuestamente estoy colocando bien el user y el password es lo raro
@Carlos-om8tj
@Carlos-om8tj 2 месяца назад
se que el comentario fue hace 2 meses, pero me paso algo similar, en mi caso tenia mysql con xampp y mysql server workbench, en resumen desinstale mysql server workbench y solo tenia un servicio de mysql en mi pc y use el mismo puerto que tenia asignado en xampp, revisa los puertos en los archivos de configuración de tu mysql.
@puntojson
@puntojson 11 дней назад
En principio te diría que tenés mal la contraseña de alguna manera, probaría reinstalando todo. Lo que dice Carlos en una manera de pasarlo, usar algún servicio como xampp. Perdón por la tardanza!
@user-cs5ye6oc2o
@user-cs5ye6oc2o 4 месяца назад
Buenas! No pude solucionar de ninguna manera el error de autenticación. Una tristeza terrible
@puntojson
@puntojson 11 дней назад
Lo lamento! Quizás tengas que usar otro gestor de base de datos que no sea mysql. Si nunca probaste sqlite quizás es hora de hacerlo. Saludos!
@joacogiudice3516
@joacogiudice3516 6 месяцев назад
Hasta ahí todo bien, pero no me estaría saliendo cuando lo quiero hacer por usuario, sino todos los usuarios comparten el mismo carrito
@puntojson
@puntojson 5 месяцев назад
En este caso el carrito se guarda por dispositivo, sin importar el usuario. Si vas a guardar carritos por usuario, entonces tenés que hacerlo en backend. Mínimo tendrías que crear una tabla de "carritos" en donde se guarde, con relación a cada usuario, una lista de elementos y cantidades. Además que necesitás toda una gestión de usuarios 😵‍💫 ¡Se pone complicado!
@yahyaly5228
@yahyaly5228 9 дней назад
Buenas, sigo los pasos al pie de la letra pero me salta un error "ER_NOT_SUPPORTED_AUTH_MODE", he probado a desinstalara, reinstalar, actualizar, modificar por comandos pero no me deja, me pone que me falta el plugin pero no me deja instalarlo. No se si podrias ayudarme :(
@puntojson
@puntojson 9 дней назад
Sí! Cuando reinstales mysql, te va a preguntar que modo de autenticación querés usar, tenés que elegir la autenticación vieja (que dice que es más insegura). Lamentablemente la librería de mysql oficial no admite la manera nueva de autenticar todavía. En esta imagen www.oreilly.com/api/v2/epubs/9781492085911/files/assets/lm2e_0121.png tendrías que elegir la opción de abajo!
@yahyaly5228
@yahyaly5228 9 дней назад
@@puntojson La elegí pero me saltó que me hacia falta el plugin de mysql_native_password.dll :(( . Y al reinstalarlo y eligiendo esa opcion me sigue mostrando errores parecidos.
@puntojson
@puntojson 9 дней назад
En una búsqueda online rápida aparecen mil posibilidades de por qué puede pasar eso, lamentablemente sin estar en tu pc, es muy dificil de ayudarte a encontrar el problema. Perdón!
@yahyaly5228
@yahyaly5228 9 дней назад
@@puntojson Muchisimas gracias por tu tiempo!
@user-qn4ci1cc8t
@user-qn4ci1cc8t 5 месяцев назад
Excelente tutorial, una lastima que la parte mas critica (conexión con la base de datos) es la menos explicada. Como se configura workbrench? que datos va en host: user: password: database:? Intente de todo pero no logre conectar con la BD.
@puntojson
@puntojson 5 месяцев назад
Buenas! Tenés razón, dije "lo voy a completar fuera de cámara" y no me di cuenta que podía llegar a ser poco didáctico. HOST= acá ponemos localhost si la base de datos está en nuestra PC, sino ponemos el IP público de nuestra base de datos. DATABASE= el nombre del "schema" que creaste en mysql workbench. Si no creaste ninguna podés entrar al workbench, la instancia local, y después hacer click derecho en "navigator -> schemas" y poner "create schema". Cada schema es un conjunto de tablas, osea, una base de datos. USER | PASSWORD= Son los datos que pusiste al instalar el workbench. Si querés escribime cual es tu error en consola y veo si te puedo dar una mano!
@user-qn4ci1cc8t
@user-qn4ci1cc8t 5 месяцев назад
@@puntojson Dale muchas gracias amigo, en realidad la duda es muy de principiante pero chat gpt me ayudo a completar esos datos. Pero aun recibo error "Unhandled rejection Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client "
@puntojson
@puntojson 5 месяцев назад
En ese caso tenés el mismo problema que otros acá, tenés que cambiar el modo de autenticación en el workbench a la autenticación vieja. Eso se hace abriendo el instalador de workbench nuevamente y poniendo "modificar instalación" o algo así. Si no tenés el instalador lo tenés que descargar de nuevo. El problema está en que la librería mysql para nodejs está desactualizada y no se ajustó al nuevo estándar de autenticación de mysql. Fijate si con esta info lo podés solucionar..!
@g4bri3ltt88
@g4bri3ltt88 4 месяца назад
​@@puntojsonosea en el caso tuyo es productos_en_vivo o te referis a otro?
@ivopavloff4795
@ivopavloff4795 2 дня назад
perdon intente eso y ahora sale esto Unhandled rejection Error: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: NO) at Sequence._packetToError (C:\Users\Flota Autom...
@puntojson
@puntojson День назад
Buenas! Es que no le pusiste contraseña a tu usuario root al instalar mysql. Te dejo este link donde explican como soucionarlo stackoverflow.com/questions/2995054/access-denied-for-user-rootlocalhost-using-passwordno Saludos!
Далее
Nestjs TypeORM con MySQL Tutorial
1:46:59
Просмотров 48 тыс.
This Is So Worth 87 Tries
00:15
Просмотров 5 млн
Regular Season vs. PLAYOFFS part 2 #pavelbarber
00:14
Typescript API in NodeJS / Express in Depth [Part 1]
38:10
When should you pick Laravel over WordPress?
26:54
Просмотров 4,6 тыс.
Nodejs y Prisma ORM REST API
41:31
Просмотров 35 тыс.
Nodejs & PostgreSQL REST API
1:03:22
Просмотров 9 тыс.
This Is So Worth 87 Tries
00:15
Просмотров 5 млн