2 de febrero de 2012 – Por Lee Jacobson

Introducción

Esta es la primera parte de una serie de tutoriales que quiero escribir sobre Node.js. Debo aclarar que no soy un experto en Node.js, pero una buena forma de comprobar que entiendes algo es intentar explicárselo a otra persona. Si ves algo que no te parece del todo correcto por favor házmelo saber para que pueda corregir el error, me aseguraré de darte crédito.
He decidido aprender Node.js recientemente debido a su creciente popularidad. La industria de la programación se mueve increíblemente rápido y es peligroso quedarse atrás. Aprender nuevos lenguajes es importante porque si no lo haces es probable que te quedes atrás y sin trabajo. Piensa en todos los desarrolladores de flash que ya no pueden encontrar trabajo.
Así que vamos a empezar con un poco de información (blegh!).
Node.js es una versión del lado del servidor de JavaScript. Eso significa que todas las cosas que son geniales sobre JavaScript se aplican aquí. También significa que si ya estás bastante familiarizado con JavaScript vas a tener una buena ventaja. Node.js sólo tiene unos pocos años y eso significa que incluso la gente que ha estado trabajando con él desde el principio sólo lo ha estado usando durante unos pocos años. Compara esto con el tiempo que algunas personas han estado escribiendo en C. Al ser un lenguaje tan nuevo también significa que no hay mucha gente que lo conozca y eso significa que por la simple regla de la oferta y la demanda tu habilidad vale más que la de un programador promedio de PHP.

Creando Hello World

Vamos a crear un hello world. Primero dirígete a http://www.nodejs.org y descarga node.js. Cuando esté instalado y listo crea un nuevo archivo JavaScript con lo siguiente:

console.log(«Hello World»);

Ahora guarda el archivo, llámalo algo así como «hello.js» y ejecútalo con el siguiente comando:

node hello.js

Así deberías conseguir que aparezca ‘Hello World’ en tu terminal. Eso está bien, pero estoy seguro de que lo más importante es saber cómo imprimir ‘Hello World’ a las nuevas conexiones HTTP.
Vuelve a abrir tu editor de texto y escribe:
Ahora guarda tu archivo y ejecútalo con:

node hello.js

Deberías ver ‘Server started’ en la terminal. Muy bien. Ahora abre tu navegador web y ve a http://localhost:8080Deberías ver tu mensaje ‘Hello World’.
Veamos más de cerca nuestro código.
La primera línea es sólo obtener el módulo http y guardarlo en la variable ‘http’. El http se incluye con Node.js para facilitarnos la creación de aplicaciones Node.js.

A continuación, podemos utilizar el módulo http para crear nuestro servidor http llamando a su función ‘createServer’. Esta función devuelve un objeto y toma una función como parámetro.
Llamamos a la función ‘listen’ en nuestro nuevo objeto servidor que toma un valor numérico que le dice a nuestro servidor en qué puerto queremos que escuche. En nuestro caso estamos usando el puerto 8080 por lo que conectamos nuestro navegador a http://localhost:8080
También creamos una función y la usamos como parámetro para la función ‘createServer’. Esto es algo bastante estándar en JavaScript porque las funciones pueden ser parámetros al igual que las variables y los objetos. Lo que va a ocurrir es que cada vez que nuestro servidor reciba una nueva conexión en el puerto 8080 va a ejecutar la función que le hemos dado. Curiosamente la función que le estamos pasando se llama función anónima, y se llama así porque no le damos un nombre.
Habrás notado que nuestra función anónima toma dos parámetros, ‘request’ y ‘response’. Estos parámetros son pasados a nuestra función anónima por el servidor HTTP cuando recibe una nueva conexión. Ambos son objetos que podemos usar en nuestra respuesta a la petición entrante.
Notarás que lo primero que hacemos es llamar a la función ‘writeHead’ que nos permite establecer el estado HTTP como primer parámetro y enviar algunas cabeceras de respuesta como segundo parámetro. Estamos estableciendo el código de estado 200 que le dice a nuestro navegador que todo está bien y también le pasamos una cabecera ‘Content-Type’ que le permite a nuestro navegador saber lo que le estamos enviando. En nuestro caso es sólo texto plano.
A continuación usamos el objeto de respuesta para escribir nuestro «Hola Mundo». Lo hacemos simplemente llamando a su función write y pasándole nuestro texto. En este punto hemos terminado con nuestra respuesta así que se lo decimos al objeto response llamando a su función ‘end’.

Haciendo nuestra respuesta más interesante

Hola mundo es bastante aburrido así que vamos a hacer algo un poco más entretenido. Podemos crear un contador de usuarios muy fácilmente en Node.js y ni siquiera necesitamos usar una base de datos como podríamos hacer en PHP.
Crea un nuevo archivo JavaScript llamado, ‘counter.js’ y escribe lo siguiente:
Ahora ejecutémoslo con el comando,

node counter.js

Cuando navegues por tu navegador a http://localhost:8080 ahora deberías obtener un contador de vistas.
Nota: Puede que veas que el contador sube por dos en cada petición, esto es porque tu navegador está solicitando el favicon del servidor (http://localhost:8080/favicon.ico).
También deberías ver que Node.js está registrando cada petición que recibe en la consola.
Lo principal que estamos haciendo aquí es establecer una variable ‘userCount’ e incrementarla en cada petición. Luego estamos escribiendo el ‘userCount’ en el texto de respuesta.
En PHP para hacer lo mismo tendrías que guardar la información en algo como un archivo de texto o una base de datos.

Este tutorial también está disponible en chino: http://www.laonan.net/blog/63/
Gracias a laonan por la traducción

Si te ha gustado este tutorial echa un vistazo a la parte 2, Node.js para principiantes – Callbacks

Autor

Hola, soy Lee.
Soy un desarrollador del Reino Unido que ama la tecnología y los negocios. Aquí encontrarás artículos y tutoriales sobre cosas que me interesan. Si quieres contratarme o saber más sobre mí dirígete a mi página sobre mí

Enlaces sociales

Etiquetas