This graph shows how many times the word ______ has been mentioned throughout the history of the program.
Bueno, está bastante interesante
esto del gobierno. Os he dejado por ahí
el artículo, os lo dejo en el chat por si
queréis echar un vistazo y además tiene documentación.
¿Existirían hackathons para cambiar el código
legacy? Hostia, qué buena es esa, ¿eh?
Pero es muy interesante. Me parece una muy buena
idea. Una hackathon para quitar el código
legacy. Muy interesante.
Vale, os voy a poner un
código que a mí
un truco de Node.js. Un truco
de Node.js que no he probado
ni siquiera. No lo he probado,
pero lo vamos a probar aquí en vivo en directo, ¿vale?
Vamos a poner truco
Node.js. Igual lo conocéis,
yo no lo conocía. Vamos a crear un
proyecto de Node en un momentito, code
punto, ¿vale? En el
package.json vamos a poner que esto sea
del tipo módul,
¿vale? Y os voy a enseñar
un truqui que yo no conocía
y de hecho alguna vez
he utilizado hasta
librerías para ello.
Hasta librerías.
Vale. No sé si sabéis cómo hacer un
un servidor web con Node
en muy pocas líneas de código, pero bueno,
lo vamos a ver en un momento.
Primero importamos HTTP
de Node.http
y ahora lo que hacemos es
http.createServer
y aquí ya tenemos una función que es
la request, la response
y ya está.
Ahora aquí, bueno, voy a devolver algo
porque si no va a ser un poco raro.
Create 200,
le pondríamos el content type,
content type,
y le ponemos aquí,
bueno, voy a poner
text plain, pero podría ser
HTML.
HTML, por ejemplo.
Vamos a poner
HTML.
Hello world con un H1
y vamos a poner que esto
termina aquí.
Vale.
Esto
en realidad
devuelve un servidor
y ahora
podríamos poner aquí
que se escuche
en el puerto 3000.
Si esto lo he hecho bien,
¿veis?
En nueve líneas de código
podéis hacer un servidor,
¿eh?
¿Qué os parece?
Vale.
Pues hemos importado
el módulo HTTP
de
Node,
que es Node.http.
Luego
hemos creado una constante server
donde estamos creando
un servidor
con el módulo HTTP,
HTTP.createServer.
De hecho,
podríamos hacer esto,
me parece.
Y ya está.
Más fácil.
Y así solo carga
lo necesario.
Entonces,
createServer
y createServer
lo que recibe
es un método
que se va a ejecutar
para cada petición
que reciba.
Aquí lo que podríamos hacer
es mirar,
por ejemplo,
hombre,
yo también prefiero
el nativo de BAN,
las cosas como son,
pero bueno,
aún así
está bastante bien
en Node,
que mucha gente
no sabe
qué se puede hacer así,
de Arraiser.
Me gusta más la de BAN,
pero tampoco está mal.
Bueno,
estamos haciendo un servidor
y el Fernand,
estamos haciendo un servidor
con Node,
muy facilito,
que es un momentito.
Entonces,
lo que recibe
el createServer
es una función,
podemos llamar
callback,
donde va a recibir
como primer parámetro
la request
y luego
como segundo parámetro
la response.
Escribimos el head,
esto sería
el status code
y también ponerle
el content type,
van a ser los headers
que va a tener la respuesta,
escribimos en el output,
por ejemplo,
un h1 o hello world
y finalmente
terminamos aquí
la respuesta,
¿vale?
Y luego
hay que ponerle
en qué puerto
tenemos que escuchar.
Yo he puesto
puerto 3000,
podríamos poner
el 1, 2, 3, 4,
por ejemplo.
Si esto ha ido bien,
podría hacer
nodeindex.js
y, bueno,
esto,
ahora si voy al puerto
1, 2, 3, 4,
¿vale?
Aquí podéis ver
el puerto 1, 2, 3, 4,
el hello world
que tenía yo,
¿vale?
Esto es lo que he hecho yo aquí,
lo puedo cambiar,
¿eh?
Hola mundo,
hay que reiniciar,
¿vale?
nodeindex.js
y si refresco aquí,
pues hola mundo.
Vale,
hasta aquí bien,
hasta aquí bien,
hasta aquí bien.
El tema,
el tema es
que una cosa
que yo no sabía,
que de hecho
no sé si esto,
a ver,
el listen,
esto devuelve,
¿no devuelve el
es así,
creo que
es que no sé,
no sé
cómo se sabe
el puerto
que está utilizando.
Get user.
No sé si vamos a tener
que escucharlo.
El tema es que normalmente
tú aquí pones el puerto.
A veces utilizas
una variable de entorno
como esto de port,
¿vale?
Y tú le pones aquí
processenv,
por ejemplo,
processenv.port,
¿vale?
Y ya tenías aquí el puerto.
Pero el tema
es que le puedes pasar
el cero.
Es que me he quedado
muy loco con esto.
Me he quedado muy loco
con esto
porque no sabía
que tú le podías pasar
el cero
y que cuando le pasas
el cero
busca el puerto libre.
No sé,
me he quedado loco.
El tema es
que ahora quiero saber
también
cómo saber
el puerto libre,
¿sabes?
Si yo le pongo esto,
¿cómo sabemos
el puerto libre de Node?
Cero.
Vale,
ya sé
cómo lo podemos hacer.
Gracias,
está con el flow.
Vale,
es que tiene
un segundo parámetro
que aquí
podremos decirle
un console.log
y this...
Ah,
pero no se le puede pasar
esto así.
Porque según esto
está pasando
el this...
this address
punto
porto.
¿Vale?
Puerto libre.
Vamos a ver
si esto funciona.
Madre mía.
Madre mía.
¿Ves?
Va cambiando
el puerto.
No tenía ni idea.
No tenía ni idea.
No tenía ni idea.
Yo he usado
una librería
para hacer esto
y resulta
que de forma
nativa
súper fácil
lo haces
como si nada.
yo siempre
utilizaba
librerías
que te miran
el puerto libre
y no sé qué.
Pues resulta
que...
A ver...
¿Ves?
Te va cambiando
el puerto.
¡Qué fuerte!
No tenía ni idea.
¿Y sirve
para cuando está
en producción?
No.
Esto sirve
sobre todo
cuando estás
en local.
En producción
normalmente
vas a saber
qué puerto
tienes libre
y además
lo vas a tener
en un reverse proxy
o algo
para que luego
te haga por el puerto 80
o el puerto que tú quieras.
Entonces,
normalmente esto
no sería para producción.
Tú no vas a hacer
esto de puertos libres
aquí.
Pero en local
muchas veces
¿qué pasa?
En local
si tú pones aquí
el puerto 3000
¿qué es lo que pasa?
Que tú tienes
el puerto 3000
¿vale?
O sea,
aquí no,
perdón.
Aquí tú pones
el puerto 3000
y muchas veces
por lo que sea
claro,
pone puerto 3000
ahora sí que pone
puerto 3000
pero pongamos
que ejecuto
la miduconf
la miduconf
se pone en puerto 3000
justamente.
Vale,
pues ahora
¿cuál es el que debería salir
en el puerto 3000?
Pues la miduconf
muy bueno
pero no me sale el otro
¿sabes?
Entonces es como
lo bueno de esto
es que
a ver
lo que podrías hacer
podrías chequear
si el puerto
está
está libre o no
y entonces utilizar uno
gratis
pero bueno
si estás haciendo APIs
en local
y no quieres liarte
lo que puedes hacer
es
por ejemplo
que le puedas
indicar el puerto
process.env
de esta forma
en producción
le puedes pasar
el puerto
que tú quieras
aquí le pasas
el port
y lo pones aquí
¿no?
open
vale
esto lo podría detectar
ay
he puesto process
mal
process
lo he puesto otra vez
mal
con dos s
Dios mío
vale
¿ves?
pero si yo le pasas
el puerto
3001
nodeindex.js
pues ya lo tendríamos
entonces de esta forma
tenemos una forma
de pasarle el puerto
pero normalmente
en local
vas a querer
justamente
evitar
que haya este tipo
de colisión
entonces dices
bueno
en local
enséñame
me da igual
lo único que quiero
es que me lo abras
en un puerto
vale pues nada
en local
lo ejecuto así
y ya me lo pone aquí
y ya lo tienes
me parece un
un trucazo
me parece un trucazo
tremendo
se utiliza siempre
el puerto 3000
por algo en particular
sí que se utilizan
los puertos 3000
hay ciertos
a ver
¿cómo se llama esto?
vale
mira
te voy a enseñar esto
y me va a servir
y va a explicártelo
¿vale?
hay un montón de puertos
que ya están
que no puedes utilizar
por ejemplo
tienes el puerto 22
tienes el puerto 25
23
el 80
el 80 lo conocéis
el 80 es
digamos el
por defecto
de HTTP
cuando entras a una página
estás entrando
por el puerto 80
cada puerto
digamos que tiene un servicio
que está asociado
así que aquí tenemos
los que son TCP
o VDP
por ejemplo
para SSH
para las DNS
para los mails
cada uno
tiene un puerto
¿qué pasa?
estos puertos
obviamente
no los puedes utilizar
si yo intento utilizar
uno de estos puertos
no lo voy a poder utilizar
porque entraría en conflicto
pero podemos ver
que dentro de lo que cabe
hay ciertos rangos
que son puertos
que podrías utilizar
¿qué pasa?
que del puerto
del 0
hasta el
mil
hasta el mil y algo
hasta el mil creo
el mil y algo
son puertos
que sabemos
que en diferentes sistemas
operativos
dispositivos
o lo que sea
no se pueden utilizar
¿vale?
no deberías tocarlos
luego
entre los puertos
2000
al 2200
también hay un montón
de sistemas operativos
aplicaciones
no sé qué
no sé cuánto
que también
entran en conflicto
y fíjate
que de hecho
en Apple
si no me equivoco
en Apple
es que a ver
antes lo ponía
antes lo ponía
en sistemas
hay en sistemas operativos
que tienen
un rango entero
que no puedes utilizar
no los puedes utilizar
directamente
¿vale?
creo que de hecho
¿ves?
del 8000
al 8099
creo que es
del 8000
al 8999
todo este rango
por ejemplo
en Apple
no lo puedes utilizar
pues esto mismo
pasa con
otros sistemas operativos
sabores
Linux
no sé qué
no sé cuánto
que hay rangos
¿ves?
este rango
tampoco lo podrías utilizar
hay rangos
que no los puedes utilizar
el rango
normalmente
el que digamos
que queda más libre
suelen ser
del 3000
hay
del 3000
hacia adelante
y porque es bastante fácil
de recordar
también puedes utilizar
por ejemplo
uno que da bastantes problemas
era 8080
con Apple
lo sé
lo sé porque
durante una época
daba problemas
8080 con Apple
y lo tuvimos que dejar
de utilizar
así que
supongo que se hace
el 3000
porque es fácil de utilizar
porque el 1000
y el 2000
digamos que son
más peligrosos
de que entrase en conflicto
el 3000
sería el primero
más fácil de utilizar
y que podría recordar
y ya está
y listas como estas
tendrías de diferentes
sistemas operativos
pues ese es el trucazo
amigos
que os ha parecido
Apple siempre conflictivo
ya te digo
ya te digo
vale
pues venga
vamos con la última noticia
que la última noticia
no sé
me parece un trucazo
esto de Note
es que de verdad
me parece buenísimo
esto para qué sirve
pues para que te pilla
automáticamente
el tema
el puerto que queramos
el midutruco
bueno la verdad
no voy a engañar
no sé dónde
pero lo he leído en Twitter
y lo he visto
y he dicho
no tenía idea
y es que yo lo he utilizado
un montón
nunca sabía
que utilizando el puerto cero
me iba a dar
el puerto libre
y el localhost
me parece súper útil
súper útil
de hecho ya os digo
yo utilizaba
durante muchas veces
he utilizado
alguna librería
que te lo hace
y no sabía
que se podía hacer
automáticamente
cosas que uno aprende
amigos
no son trucazos
son bombazos
ya te digo
ya te digo
con Express
será igual
sí sí
con Express
será igual
porque por debajo
utiliza
utiliza eso
que hemos visto
bueno amigos
os cuento
los grandes cambios
que vienen
de Dino
no
dino