Hola Manuel. primero quiero agradecerte por este y otros contenidos me parecen de excelente calidad academica y sobre todo didáctica. Para el resto que tuvo problemas con el length del array contactos: del minuto 54:19 hay que pasar al 1:06:25 hasta el 1:13:53 y luego retomar en 54:20 . Saludos!!!
Para los que tengan problema con el length. Esto es por el código que uso en funciones.js Pueden cambiar esto= let id = this.getAttribute('id') por esto = let id = i.getAttribute('id') haciendo referencia al i de la iteración.
Ha sido el único video que me ha servido he avanzado mucho en un proyecto que acutalmento estoy realizando pero estaba parado acá no avanzaba pues no tengo mucha experiencia con sql, gracias por el video
Para las personas que vienen como yo despues del 2022, la version de mysql ha cambiado y el soporte para la auth de la base de datos solo es compatible con la dependencia mysql2, el comando para instalar es lo mismo, solo agregar un "2", asi: ----------------------- npm i mysql2 -------------------------------- Saludos y que buen video señor Codificandolo
Mi reyyyyyyyyy acabo de descubrir este canal, sabes un monton amigo, no te imaginas de mareado que estoy pero a full con este proyecto y tus otros cursos, pense que en 3 meses iba a programar pero nada que ver me falta un monton para siquiera postularme a algo saludos.
Hola Manuel, ¡Te Felicito! que buen vídeo, muy bien explicado, y es que hasta los errores, son buenos...jajaja Hoy es 7 de Julio del 2024, y quería sugerirte (muy adecudamente, sin animos de nada), si pudieras actualizar este magnifico vídeo, pero utilizando las estructuras de carpetas que se usan hoy día en proyectos NodeJS y ExpressJS, utilizar variables de entorno para guardar lo datos de la conexión de la BDD, y además sustituir PUG por EJS, ya que utilizar HTML puro realmente es mucho mejor. De antemano gracias, y ojala que sigas generando contenido, ya que eres muy, pero muy bueno! Saludos...
Hola Manuel, la verdad te debo demasiado muchas gracias por este gran instructivo para aprender express y me ha servido para aprender bastante enserio te debo mucho y saludos desde Chile gran Maestro, enseñas bastante bien muy natural y eso se agradece, literal se sentia como si uno estuviese en una clase.
Siempre eres un crack... Claro.. Las app con javascript puro son lo máximo... Pero trabajarla con bases de datos son muy eficientes y ayudan a que podamos implementar los conocimientos para aprender realmente el lenguaje..
detalle importante: cuando renderizas la variable en el archivo .pug asegurarse de poner "tag= variable" (con el igual pegado al tag) de otra forma no reconocera el valor...
alguien soluciono el error de iteracion en el bucle each "Cannot read property 'length' of undefined"??? , ya refactorice, corregi el This , el insert pero este se resiste! XD
Hola. Primeramente gracias por compartir tus conocimietos. Por otro lado tengo un problema al obtenerContactos(). Resulta que la primera vez que llamo a la función me devuelve el famoso error de lenght undefined. Pero al recargar por segunda vez los datos aparecen. Evidentemente hay un problema de asincronía no manejada. La pregunta es: ¿como solucionarlo? Intenté varias coass pero no doy con la solución
Gracias Manuel! Justo lo q estaba esperando!!!!! NODEJS y Express! estaria bien si pudieses para otra ocasión un proyecto con MongoDb mas q nada por ver el contraste entre Nosql y Mysql! my fan d tu canal Larga vida codificandoloooooo!
Para el que se haya quedado en lo mismo que yo...el error está en que en pug esta tratando de recorrer el array contactos que no existe (No se si fue error mio que me lo saltié sin querer o si realmente hubo un error en la edicion del video) pero la solucion es que falta escribir la funcion de obtener contactos en el archivo mysql conector...mas adelante en el video se ve bien dicha funcion
saludos agradecido para la recarga automática se puede colocar un useeffect que monitoree los cambios en las variables de estado? apenas empiezo con backend
Una duda, ¿lo que sale aquí todavía sirve? Es que últimamente noto que los frameworks cambian tanto de que hay cosas que ya no se pueden usar o siquiera aplicar a la vida real. Y quiero aprender Node
Estuve probando el código paro tuve que realizar varios cambios por que no arrancaba en mi ubuntu, algunas cambios, instalar npm install @babel/core @babel/register @babel/preset-env --save-dev , y cambiar import express from 'express' por const express = require('express'), igual con la linea de mysql, estoy bloqueado en la parte donde se exporta la función conectar (export {conectar}) , la función no me la exporta desde el archivo mysql_conector.js, he intentado desde el archivo index.js , const conectar= require('./src/mysql_conector.js') o import {conectar} from './src/mysql_conector.js'. No he tenido buenos resultados. Aunque no he tenido buenos resultados me ha gustado este ejemplo, muchos saludos!!!
Buen video Manuel, no me queda del todo claro por qué las rutas que disparan funciones sobre la db no llegan a ser consideradas como apis. Puede ser porque es todo parte de la misma aplicación o sistema, y rompe con esa idea de las apis de comunicar dos aplicaciones distintas abstrayéndose de como funciona c/u?
Buenas Manuel, gracias por el vídeo, que me recomiendas si a éste proyecto le quiero agregar un campo de Fecha, si hay algún tipo de librería que utilices para ver un calendario y luego éso insertarlo en la base de datos, desde ya te agradezco. Saludos.
Para empezar no está nada mal, pero no es una buena práctica en cuanto a estructura del proyecto, así como las templates son algo un poco del pasado teniendo hoy en día cosas como React o Next. Si es para empezar tampoco me gusta pug teniendo ejs que es más html simple. Sé que nombrar funciones y variables en español ayuda para iniciarse pero nunca usemos eso en un proyecto serio donde vayan a participar más personas. Se entiende que es una introdución y es así como empecé.
Excelente gracias, cuesta ver expresas con pug, yo tengo un sitio web con esa tecnología, solo que Pug parece que no tiene mucho apoyo. Saludos desde CR
lo hice todo tal cual para instalar el mysql y el express y me da esto : Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client at Handshake.Sequence._packetToError (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\protocol\sequences\Sequence.js:47:14) at Handshake.ErrorPacket (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\protocol\sequences\Handshake.js:123:18) at Protocol._parsePacket (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\protocol\Protocol.js:291:23) at Parser._parsePacket (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\protocol\Parser.js:433:10) at Parser.write (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\protocol\Parser.js:43:10) at Protocol.write (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\protocol\Protocol.js:38:16) at Socket. (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\Connection.js:88:28) at Socket. (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\Connection.js:526:10) ←[90m at Socket.emit (events.js:400:28)←[39m ←[90m at addChunk (internal/streams/readable.js:293:12)←[39m -------------------- at Protocol._enqueue (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\protocol\Protocol.js:144:48) at Protocol.handshake (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\protocol\Protocol.js:51:23) at Connection.connect (C:\Users\edgar\Desktop\Nueva carpeta ode_modules\←[4mmysql←[24m\lib\Connection.js:116:18) at Object. (C:\Users\edgar\Desktop\Nueva carpeta\app.js:12:12) ←[90m at Module._compile (internal/modules/cjs/loader.js:1085:14)←[39m ←[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)←[39m ←[90m at Module.load (internal/modules/cjs/loader.js:950:32)←[39m ←[90m at Function.Module._load (internal/modules/cjs/loader.js:790:12)←[39m ←[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)←[39m ←[90m at internal/main/run_main_module.js:17:47←[39m { code: ←[32m'ER_NOT_SUPPORTED_AUTH_MODE'←[39m, errno: ←[33m1251←[39m, sqlMessage: ←[32m'Client does not support authentication protocol requested by server; consider upgrading MySQL client'←[39m, sqlState: ←[32m'08004'←[39m, fatal: ←[33mtrue←[39m
esta funcion const verContactos = () => { const sql = 'SELECT * FROM contactos'; //SELECT * FROM `contactos` conector.query(sql, function(err, result, field){ todos = result; }); console.log(todos); return todos; } me arroja undefined si subo el console.log me arroja los contactos pero ahi mas najo nada
Cuando haces la funcion de obtener contactos en mysql estas haciendo una tarea asíncrona, no entiendo como no te devuelve undefined si no usas un callback 🤷♀🤷♀
Hola Manuel. primero quiero agradecerte por este y otros contenidos me parecen de excelente calidad academica y sobre todo didáctica. Para el resto que tuvo problemas con el length del array contactos: del minuto 54:19 hay que pasar al 1:06:25 hasta el 1:13:53 y luego retomar en 54:20 . Saludos!!!
esta trabado hace un rato, gracias por el comentario.
Esto es ORO puro!, gracias desde Argentina!, agrego comentario así ayudo a algoritmo de UA-cam para el posicionamiento n_n
Este sin duda es de los mejores explicando de todo youtube
Para los que tengan problema con el length. Esto es por el código que uso en funciones.js
Pueden cambiar esto= let id = this.getAttribute('id')
por esto = let id = i.getAttribute('id')
haciendo referencia al i de la iteración.
tuve que pasar por muchos profes por youtube para encontrar al indicado, sos el mejor, suscrito de una
este tipo servi para ser profesor, explica cada punto con detalle lo que no hacen muchos de los youtuve
Ha sido el único video que me ha servido he avanzado mucho en un proyecto que acutalmento estoy realizando pero estaba parado acá no avanzaba pues no tengo mucha experiencia con sql, gracias por el video
Para las personas que vienen como yo despues del 2022, la version de mysql ha cambiado y el soporte para la auth de la base de datos solo es compatible con la dependencia mysql2, el comando para instalar es lo mismo, solo agregar un "2", asi:
----------------------- npm i mysql2 --------------------------------
Saludos y que buen video señor Codificandolo
Mi reyyyyyyyyy acabo de descubrir este canal, sabes un monton amigo, no te imaginas de mareado que estoy pero a full con este proyecto y tus otros cursos, pense que en 3 meses iba a programar pero nada que ver me falta un monton para siquiera postularme a algo saludos.
Hola Manuel, ¡Te Felicito! que buen vídeo, muy bien explicado, y es que hasta los errores, son buenos...jajaja Hoy es 7 de Julio del 2024, y quería sugerirte (muy adecudamente, sin animos de nada), si pudieras actualizar este magnifico vídeo, pero utilizando las estructuras de carpetas que se usan hoy día en proyectos NodeJS y ExpressJS, utilizar variables de entorno para guardar lo datos de la conexión de la BDD, y además sustituir PUG por EJS, ya que utilizar HTML puro realmente es mucho mejor. De antemano gracias, y ojala que sigas generando contenido, ya que eres muy, pero muy bueno! Saludos...
Gracias. Estaba trabada pero me ayudo muchísimo este video para seguir trabajando.
Manuel todavía me falta un poco para llegar estoy en otros cursos tuyo pero tienes una enseñanza muy buena especial tus cursos. Saludos desde Cuba
Excelente explicación muchas gracias CRACK
Hola Manuel, la verdad te debo demasiado muchas gracias por este gran instructivo para aprender express y me ha servido para aprender bastante enserio te debo mucho y saludos desde Chile gran Maestro, enseñas bastante bien muy natural y eso se agradece, literal se sentia como si uno estuviese en una clase.
Siempre eres un crack... Claro.. Las app con javascript puro son lo máximo... Pero trabajarla con bases de datos son muy eficientes y ayudan a que podamos implementar los conocimientos para aprender realmente el lenguaje..
Alguine soluciono el tema del each? el length undefine?
Eres mi nuevo Dios griego, te has ganado un seguidor de por vida
detalle importante: cuando renderizas la variable en el archivo .pug asegurarse de poner "tag= variable" (con el igual pegado al tag) de otra forma no reconocera el valor...
Gracias maestro por el tiempo y la dedicación. Excelente material.
eres una muy buena persona, mucha salud y bendiciones, saludos desde Colombia!
Gracias Manuel, me suscribo a la de ya y me voy comiendo a cucharadas este video, que como muchos han dicho, es oro puro. Saludos.
Que crack que eres Manuel, saludos desde Colombia
Que grande justo sobre lo que estoy aprendiendo, te lo agradezco demasiadoooo
Me gusta tus videos, veo que siempre van mas allá de lo básico y me ayuda avanzar. Gracias
alguien soluciono el error de iteracion en el bucle each "Cannot read property 'length' of undefined"??? , ya refactorice, corregi el This , el insert pero este se resiste! XD
justo lo que estaba buscando, encima gratis, sos un genio!
Gracias mi hermano por tu excelente explicacion
Uf gracias ya tengo mi modelo entidad relación y no quería usar php. Y con JS no sabía como porque solo lo usé en el frontend.
Puedo hacer este ejemplo con SQL? O hay muchas diferencias?
Hola. Primeramente gracias por compartir tus conocimietos. Por otro lado tengo un problema al obtenerContactos(). Resulta que la primera vez que llamo a la función me devuelve el famoso error de lenght undefined. Pero al recargar por segunda vez los datos aparecen. Evidentemente hay un problema de asincronía no manejada. La pregunta es: ¿como solucionarlo? Intenté varias coass pero no doy con la solución
Gracias Manuel! Justo lo q estaba esperando!!!!! NODEJS y Express! estaria bien si pudieses para otra ocasión un proyecto con MongoDb mas q nada por ver el contraste entre Nosql y Mysql! my fan d tu canal Larga vida codificandoloooooo!
no me gusto el corte que hiciste en el minuto 54:35 ya que no me arranco ya que no se vio el proceso
hola no es mas fácil utilizar express-generators. ya que viene pre armando.
A alguien mas le tira error cuando en index.pug escribimos "each contacto in contactos"?
Para el que se haya quedado en lo mismo que yo...el error está en que en pug esta tratando de recorrer el array contactos que no existe (No se si fue error mio que me lo saltié sin querer o si realmente hubo un error en la edicion del video) pero la solucion es que falta escribir la funcion de obtener contactos en el archivo mysql conector...mas adelante en el video se ve bien dicha funcion
Hola buenas, recién entro en todo este mundo del desarrollo. Quería saber que se usa a nivel profesional para remplazar XAMPP
saludos agradecido para la recarga automática se puede colocar un useeffect que monitoree los cambios en las variables de estado? apenas empiezo con backend
Justo estoy comenzando con nodejs! estaria bien un video explicando un poco de Pug o EJS, como siempre GRACIAS CRACK!!!!
Una duda, ¿lo que sale aquí todavía sirve? Es que últimamente noto que los frameworks cambian tanto de que hay cosas que ya no se pueden usar o siquiera aplicar a la vida real.
Y quiero aprender Node
Alguien tiene su repositorio? es que con el link que está no me deja entrar
Hola buenas , muy buenos tutoriales, tengo una duda, si no quiero usar pug y en lugar de eso quiero renderizar componentes jsx , como lo hago?
Que buen contenido el de tu canal. Gracias por compartirlo
Estuve probando el código paro tuve que realizar varios cambios por que no arrancaba en mi ubuntu, algunas cambios, instalar npm install @babel/core @babel/register @babel/preset-env --save-dev , y cambiar import express from 'express' por const express = require('express'), igual con la linea de mysql, estoy bloqueado en la parte donde se exporta la función conectar (export {conectar}) , la función no me la exporta desde el archivo mysql_conector.js, he intentado desde el archivo index.js , const conectar= require('./src/mysql_conector.js') o import {conectar} from './src/mysql_conector.js'. No he tenido buenos resultados. Aunque no he tenido buenos resultados me ha gustado este ejemplo, muchos saludos!!!
Buen video Manuel, no me queda del todo claro por qué las rutas que disparan funciones sobre la db no llegan a ser consideradas como apis. Puede ser porque es todo parte de la misma aplicación o sistema, y rompe con esa idea de las apis de comunicar dos aplicaciones distintas abstrayéndose de como funciona c/u?
19:02 indentación
Buenas Manuel, gracias por el vídeo, que me recomiendas si a éste proyecto le quiero agregar un campo de Fecha, si hay algún tipo de librería que utilices para ver un calendario y luego éso insertarlo en la base de datos, desde ya te agradezco. Saludos.
Para empezar no está nada mal, pero no es una buena práctica en cuanto a estructura del proyecto, así como las templates son algo un poco del pasado teniendo hoy en día cosas como React o Next. Si es para empezar tampoco me gusta pug teniendo ejs que es más html simple. Sé que nombrar funciones y variables en español ayuda para iniciarse pero nunca usemos eso en un proyecto serio donde vayan a participar más personas. Se entiende que es una introdución y es así como empecé.
Excelente contenido, muchas gracias.
Buenas! alguien tiene idea de como puedo subir una aplicación de este estilo de forma gratuita ?
Excelente gracias, cuesta ver expresas con pug, yo tengo un sitio web con esa tecnología, solo que Pug parece que no tiene mucho apoyo. Saludos desde CR
lo compartire en mi redes
me ayudaste un monton!! muchas gracias!!
lo hice todo tal cual para instalar el mysql y el express y me da esto :
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\protocol\sequences\Sequence.js:47:14)
at Handshake.ErrorPacket (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\protocol\sequences\Handshake.js:123:18)
at Protocol._parsePacket (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\protocol\Parser.js:433:10)
at Parser.write (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\protocol\Parser.js:43:10)
at Protocol.write (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\protocol\Protocol.js:38:16)
at Socket. (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\Connection.js:88:28)
at Socket. (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\Connection.js:526:10)
←[90m at Socket.emit (events.js:400:28)←[39m
←[90m at addChunk (internal/streams/readable.js:293:12)←[39m
--------------------
at Protocol._enqueue (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\protocol\Protocol.js:51:23)
at Connection.connect (C:\Users\edgar\Desktop\Nueva carpeta
ode_modules\←[4mmysql←[24m\lib\Connection.js:116:18)
at Object. (C:\Users\edgar\Desktop\Nueva carpeta\app.js:12:12)
←[90m at Module._compile (internal/modules/cjs/loader.js:1085:14)←[39m
←[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)←[39m
←[90m at Module.load (internal/modules/cjs/loader.js:950:32)←[39m
←[90m at Function.Module._load (internal/modules/cjs/loader.js:790:12)←[39m
←[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)←[39m
←[90m at internal/main/run_main_module.js:17:47←[39m {
code: ←[32m'ER_NOT_SUPPORTED_AUTH_MODE'←[39m,
errno: ←[33m1251←[39m,
sqlMessage: ←[32m'Client does not support authentication protocol requested by server; consider upgrading MySQL client'←[39m,
sqlState: ←[32m'08004'←[39m,
fatal: ←[33mtrue←[39m
Manuel mis respetos pero esta aplicación con respecto a la seguridad de la base de datos será vulnerable ?
si y mucho en este video no hemos buscado tener una aplicación completa, tan solo dar una aproximación para poder tener un punto de referencia.
vamos Manuel querido!!! a mover ese algoritmo. vas a hacer algo de Django?
por supuesto y tambien webscraping con Python.
Muy bueno, muchas gracias.
bro me suscribi a los 10 segundos de conocerte
esta funcion const verContactos = () => {
const sql = 'SELECT * FROM contactos'; //SELECT * FROM `contactos`
conector.query(sql, function(err, result, field){
todos = result;
});
console.log(todos);
return todos;
}
me arroja undefined
si subo el console.log me arroja los contactos pero ahi mas najo nada
Que grande Manuel!
Maravilloso
explicas muy bien :D
Oro puro del bueno
Saludos tocayo! :D xD
Buen video. ✌
Idolo
Un video donde able de las relaciones con nodejs y mongo
Niceeeeee peladitoooo
Brutal
indentación
crack!
Cuando haces la funcion de obtener contactos en mysql estas haciendo una tarea asíncrona, no entiendo como no te devuelve undefined si no usas un callback 🤷♀🤷♀
Buen video!