En este post hablaremos sobre cómo configurar un servidor HTTP básico con Node.js.

Cuando llegué al punto donde quería empezar con mi primera aplicación Node.js “real”, me pregunté no solo cómo la iba a programar, sino que también, como organizar mi código. ¿Necesitaré tenerlo todo en un archivo? Muchos tutoriales en la Web que te enseñan cómo escribir un servidor HTTP básico en Node.js tienen toda la lógica en un solo lugar. ¿Qué pasa si yo quiero asegurarme que mi código se mantenga legible a medida que le vaya agregando más cosas?

Resulta, que es relativamente fácil de mantener los distintos aspectos de tu código separados, poniéndolos en módulos.

Esto te permite tener un archivo main limpio, en el cual ejecutas Node.js, y módulos limpios que pueden ser utilizados por el archivo main, entre muchos otros.

Así que vamos a crear un archivo main el cual usaremos para iniciar nuestra aplicación, y un archivo de módulo dónde residirá el código de nuestro servidor HTTP.

Mi impresión es que es más o menos un estándar nombrar a tu archivo principal como index.js. Tiene sentido también que pongamos nuestro módulo de servidor en un archivo llamado server.js.

Módulo del servidor

Empecemos con el módulo del servidor. Crea el archivo server.js en el directorio raíz de tu proyecto, y llénalo con el código siguiente:

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/html"});
  response.write("Hola Mundo");
  response.end();
}).listen(8888);

Eso es! Acabas de escribir un servidor HTTP activo. Probémoslo ejecutándolo y testeándolo. Primero ejecuta tu script con Node.js:

node server.js

Ahora, abre tu browser y apúntalo a http://www.agiliacenter.com:8888/. Esto debería desplegar una página web que diga “Hola Mundo”.

Interesante, ¿no? ¿Qué tal si hablamos de qué está pasando aquí y dejamos la pregunta de ‘cómo organizar nuestro proyecto’ para después? Prometo que volveremos a esto.