Mi primera aplicación web en Node.js: Crea tu primer servidor web

Mi primera aplicación web en Node.js: Crea tu primer servidor web

¿Cómo crear un servidor web con Nodejs?

Node incorpora un parser de http (que procesa llamadas y respuestas usando http). Esta librería forma parte del core de Nodejs, es decir que no requiere ser instalada como un paquete adicional. Es esta, la librearía que vamos a utilizar para crear nuestro primer servidor web.

Vamos a mandar llamar el módulo http.

var http = require("http");

Ahora necesitamos vamos a llamar a la función createServer.

var miServidor = http.createServer(function (solicitud, respuesta) {});

La función createServer require que le proporcionemos una función anónima como callback, esta función anónima recibe dos argumentos, solicitud y respuesta. La solicitud es el objeto que representa la petición (request) que se hace al servidor, mientras que la respuesta (response) se refiere a la respuesta del servidor al cliente.

¿Cómo definir las cabeceras (headers) de una petición HTTP?

Cuando enviemos un request, vamos a regresar un response con el código 200, en HTTP el número 200 representa una conexión exitosa al servidor, que es lo que queremos notificar al cliente. También vamos a notificarle al cliente que el tipo de contenido que vamos a desplegar es texto plano (text/plain).

respuesta.writeHead(200, { "Content-Type": "text/plain" });

La función writeHead genera las cabeceras del response, como primer argumento recibe el código del estados de la petición, y como segundo un objeto con las propiedades de la cabecera.

¿Cómo imprimir el cuerpo de una respuesta de un servidor Node.JS?

Ahora vamos a enviar la otra parte de la respuesta que es el contenido del texto plano, para esto podemos utilizar directamente end que cierra la respuesta y la envía al cliente.

respuesta.end("Hola mundo!");

¿Cómo inicializar un servidor web?

Ya que hemos definido el callback con las cabeceras y el texto hola mundo, vamos a inicializar el servidor. Esto fuera del callback.

miServidor.listen(1111, "127.0.0.1");

La función listen (escuchar), toma dos valores como argumentos.

  • El puerto en el cual se realizará la conexión (en nuestro caso usamos el 1111).
  • La dirección IP en la cual vamos a escuchar a iniciar el servidor (las direcciones, en nuestro caso usamos la IP 127.0.0.1, esta hace referencia a una dirección IP local, que cuyo nombre es popularmente conocido como localhost).

Suponiendo que tu archivo se llama app.js, ejecútalo en la terminal con node.

$ node app.js

Este es un proceso que se queda en ejecución a la espera de las peticiones (requests).

Vamos a abrir la dirección 127.0.0.1:1111 en nuestro navegador (el que desees) y se desplegará el mensaje Hola mundo!.

Realizando cambios a la aplicación

Intenta por ultimo realizar un cambio en el mensaje Hola mundo!, cambia el mensaje por, Todo va bien!.

respuesta.end("Todo va bien!");

Ahora refresca la ventana del navegador… Los cambios no se ven reflejados.

Cuando node ejecuta un bloque de código, convierte ese código en código máquina, por ende si modificamos el archivo este cambio no se ve reflejado a menos que cerremos la aplicación en la terminal y la volvamos a abrir. Este comportamiento limita bastante al momento de trabajar pues se pierde mucho tiempo terminar e iniciar nuevamente un proceso, veremos como lidiar con lo anterior en los próximos capítulos.