Ejemplo Node JS con el módulo HTTP

  • Por
  • y  
Ejemplo un poco más práctico de un ejercicio realizado con Node.JS y el módulo HTTP, que sirve para implementar comunicaciones HTTP con NodeJS.

Este es el último bloque de la charla #nodeIO Introducción a NodeJS emitida en DesarrolloWeb.com por Alejandro Morales. En este caso nos introducimos en un terreno más práctico, que nos permitirá ver un primer ejemplo en Node.JS. Es también el quinto artículo del Manual de NodeJS, en el que ya nos ponemos manos a la obra para lanzarnos a trabajar con código fuente en un primer programita.

Este es el módulo que nos sirve para trabajar con el protocolo HTTP, que es el que se utiliza en Internet para transferir datos en la Web. Nos servirá para crear un servidor HTTP que acepte solicitudes desde un cliente web y servirá como colofón a la introducción a Node.

Referencia: Podemos encontrar la documentación de este módulo en http://nodejs.org/api/http.html

Como queremos hacer uso de este módulo, en nuestro ejemplo empezaremos por requerirlo mediante la instrucción "require()".

var http = require("http");
Nota: Existen otros módulos que crean servidores como es el caso de "net", "tcp" y "tls".

A partir de este momento tenemos una variable http que en realidad es un objeto, sobre el que podemos invocar métodos que estaban en el módulo requerido. Por ejemplo, una de las tareas implementadas en el módulo HTTP es la de crear un servidor, que se hace con el módulo "createServer()". Este método recibirá un callback que se ejecutará cada vez que el servidor reciba una petición.

var server = http.createServer(function (peticion, respuesta){
   respuesta.end("Hola DesarrolloWeb.com");
});

La función callback que enviamos a createServer() recibe dos parámetros que son la petición y la respuesta. La petición por ahora no la usamos, pero contiene datos de la petición realizada. La respuesta la usaremos para enviarle datos al cliente que hizo la petición. De modo que "respuesta.end()" sirve para terminar la petición y enviar los datos al cliente.

Ahora voy a decirle al servidor que se ponga en marcha. Porque hasta el momento solo hemos creado el servidor y escrito el código a ejecutar cuando se produzca una petición, pero no lo hemos iniciado.

server.listen(3000, function(){
   console.log("tu servidor está listo en " + this.address().port);
});

Con esto le decimos al servidor que escuche en el puerto 3000, aunque podríamos haber puesto cualquier otro puerto que nos hubiera gustado. Además "listen()" recibe también una función callback que realmente no sería necesaria, pero que nos sirve para hacer cosas cuando el servidor se haya iniciado y esté listo. Simplemente, en esa función callback indico que estoy listo y escuchando en el puerto configurado.

Código completo de servidor HTTP en node.JS

Como puedes ver, en muy pocas líneas de código hemos generado un servidor web que está escuchando en un puerto dado. El código completo es el siguiente:

var http = require("http");
var server = http.createServer(function (peticion, respuesta){
   respuesta.end("Hola DesarrolloWeb.com");
});
server.listen(3000, function(){
   console.log("tu servidor está listo en " + this.address().port);
});

Ahora podemos guardar ese archivo en cualquier lugar de nuestro disco duro, con extensión .js, por ejemplo servidor.js.

Nota: Si estamos en Windows podríamos guardar el archivo en una carpeta que se llame node en c:. La ruta de nuestro archivo sería c:/node/servidor.js.

Poner en ejecución el archivo con Node.JS para iniciar el servidor

Ahora podemos ejecutar con Node el archivo que hemos creado. Nos vamos desde la línea de comandos a la carpeta donde hemos guardado el archivo servidor.js y ejecutamos el comando "node" seguido del nombre del archivo que pretendemos ejecutar:

node servidor.js

Entonces en consola de comandos nos debe aparecer el mensaje que informa que nuestro servidor está escuchando en el puerto 3000.

El modo de comprobar si realmente el servidor está escuchando a solicitudes de clientes en dicho puerto es acceder con un navegador. Dejamos activa esa ventana de línea de comandos y abrimos el navegador. Accedemos a:

http://localhost:3000

Entonces nos tendría que aparecer el mensaje "Hola DesarrolloWeb.com".

Conclusión sobre la introducción sobre NodeJS

Con este ejemplo en funcionamiento hemos completado material divulgado en el webcast #nodeIO de introducción a NodeJS. La verdad es que, puesto en palabras, impresiona la cantidad de información que nos pasó Alejandro Morales @_alejandromg, al que mando mi más sincero agradecimiento y enhorabuena por esa magnífica exposición.

En siguientes webcast continuaremos hablando de NodeJS y realizando otros ejemplos desde cero que nos puedan ir soltando en el mundo "Node".

Acabo con un par de recomendaciones del propio Alejandro:

  • Aprende Javascript para poder pasar luego a NodeJS con garantías. Es más importante el hecho de dominar el propio Javascript que tener idea de otros lenguajes de programación del lado del servidor.
  • Si tienes una base suficiente de Javascript, destina al menos una semana, unas 40 horas, para aprender NodeJS y realizar algún ejemplo interesante. muéstralo a tus amigos y promociona lo que has aprendido y estarás ayudando a la comunidad de NodeJS, divulgando esta tecnología.

Conclusión

Continuaremos a partir de aquí comentando algunos otros actores de la programación sobre NodeJS, como los eventos y los stream y realizando ejemplos un poco más complejos. Si quieres ir aprendiendo las cosas que veremos en los próximos artículos, te recomiendo ver el segundo webcast #nodeIO dedicado a los eventos, streams y más.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Autor

Alejandro Morales Gámez

Alejandro Morales es un desarrollador web, especialista en JavaScript, Node.js, lua y Ruby. Gran aficionado de los proyectos de código abierto (Open Source), con más de 50 contribuciones a diferentes proyectos, entre los cuales esta: Nodester y npmjs.org... Autor de más de 6 módulos para node.js. Escritor ocasional. Gran observador de la conducta humana y uno de los fundadores de numbus.co.
Desarrollador web, especialista en JavaScript, Node.js, lua y Ruby.

Compartir

Comentarios

olman21

11/8/2014
Excelente
Tenía rato de querer meterme en el mundo de node.js, es muy amplio, y es muy fácil perderse, estos articulos han sido sumamente entendibles y ahí paso a paso se va aprendiendo la tecnología, felicidades y sigan así.

Victor

21/3/2017
Node.js
Acabo de seguir tus recomendaciones con el Framework UI https://docs.dhtmlx.com/optimus__index.html#relatedmaterials y lo hehecho con FACILIDAD no tuve complicaciones, bien explicado, felicitaciones