Blog

Como instalar Node.js y escribir primeros programas Blog

Tags: JavaScript Node.js Serverside

La semana pasada mostré como compilar el V8 en tu propio ordenador o computadora, te recomiendo hacerlo para poder instalar Node.JS sin problemas, el día de hoy mostraré como instalar Node.js y además como iniciar a escribir algunos programas sencillos.

Acerca de Node.js

El objetivo de Node.js es proveer una manera sencilla para desarrollar aplicaciones escalables de alto rendimiento, ya que Node no funciona como la mayoría de los servidores tradicionales, Node no crea hilos para cada petición o cliente sino que usa un sistema de "callbacks". Para conocer más al respecto recomiendo ir al sitio oficial y leer la documentación, también les recomiendo ver el video donde Ryan Dahl da una introducción a Node.js.

Pre requisitos

Para poder compilar el código necesitaremos las siguientes herramientas, si seguiste el tutorial de la semana pasada seguramente ya las tendrás instaladas: Otra cosa importante es que Node.js se puede instalar sin problemas en Linux, MacOS y Solaris, pero también puede ser instalado en Windows utilizando CygWin, FreeBSD y OpenBSD. En esta ocasión instalaré Node en un MacOS, pero los pasos para instalarlo en Linux son los mismos.

Descargar una versión estable

Para descargar la última versión estable lo podemos hacer desde la página oficial, al día de hoy la versión que descargaré es la 0.2.6.

Compilar Node.js

Compilar Node es muy sencillo, solamente se requiere ejecutar los siguientes comandos dentro del directorio que has descargado:
$ ./configure
$ make
$ make install
Al ejecutar esos comandos debería darte un mensaje de éxito y ahora estás listo para iniciar a escribir tus primeros programas.

Primeros programas

Voy a mostrar algunos programas muy sencillos, primero escribiré el famoso "Hola mundo" para no perder la costumbre.
var sys = require("sys");

sys.puts("Hello world!");

console.log("Hi again!!");
Guardamos ese programa en un archivo llamado hello.js, para ejecutarlo ejecutamos el siguiente comando:
$ node hello.js
Con eso podremos ver el mensaje escrito en la consola. Ahora escribiré un programa que solicite mi nombre y me de la bienvenida, con esto veremos el concepto de callbacks al cual estamos acostumbrados al utilizar ExtJS.
var sys = require("sys");

sys.puts("What's your name?");

var stdin = process.openStdin();
stdin.on("data",function(buffer){
	console.log("Hi "+buffer.toString()+", welcome to Node.js!");
	process.exit(); //fin del programa
});

console.log("last line of code!");
En este programa vemos algo muy interesante en la manera como funciona Node, y es que debemos entender que Node se ejecuta de manera asíncrona, esto queda demostrado cuando abrimos la entrada de texto desde la consola no se queda bloqueado en esa linea hasta que el usuario entre una secuencia de caracteres, lo que hace es continuar ejecutando el código siguiente agregando un listener e imprimiendo la última línea del programa, cuando el usuario introduce algún texto se ejecuta el callback e imprime el mensaje de bienvenida y termina el programa. El último ejemplo que mostraré es como crear un servidor web que escuche al puerto 8080 y responda las peticiones con un mensaje.
var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(8080);

console.log('Server listen to the port 8080');
Ejecutas el archivo que contiene el código y luego en tu navegador favorito abres la url "http://localhost:8080" y podrás ver la respuesta del servidor. Es importante mencionar que a este punto no tenemos un sistema de ruteamiento, ni sesiones, ni podemos servir archivos estáticos (html, js, images, etc...), este servidor que escribimos es muy primitivo pero es el punto de entrada.

Conclusiones

Node.js es una herramienta muy poderosa, actualmente existen varios proyectos al rededor de Node que nos permiten contar con una base de datos, manejo de sesiones, etc. En mi opinión Node.js es el futuro de la web ya que nos permite crear aplicaciones en tiempo real de manera muy sencilla, en futuros tutoriales mostraré como usar los WebSockets para comenzar a crear aplicaciones realmente espectaculares. Si tienes alguna duda puedes registrate en el foro, la comunidad esta creciendo además tenemos planeado realiza un proyecto open source donde podamos aprender y participar todos.

17Comentarios

  • Avatar-10 tierrarara 11/01/2011

    increible :D

    • Avatar-11 Juan 17/01/2011

      ummm Realmente no me queda claro que es Node.js, he investigado e internet pero aun no aterrizo, podrias explicarlo con tus propias palabras que es node.js y que diferencia hay con apache o con javascript? saludos y gracias.

      • Avatar-9 Johnny Cock 08/01/2016

        Node JS es como un negrote que te puede atravesar el culo, a diferencia de los apaches es robusto.

      • Avatar-3 Crysfel 18/01/2011

        En cortas palabras Node.JS es un V8 con muchas más API's para hacer operaciones IO, acceso a disco, Sockets, etc... podemos escribir un Servidor Web o simplemente programas que se ejecuten con JavaScript del lado del servidor o en una terminal.

        • Avatar-11 isola009 20/01/2011

          Muy bueno, sí señor. ¿Para cuándo el tutorial de WebSockets?

          • Avatar-8 Mlayns 05/03/2011

            muy Interesante e importante.... Saludos

            • Avatar-12 Mlayns 21/03/2011

              http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js/ ..aqui hay unos ejercicios muy interesantes tambien... (ademas de la Wiki de Node.js) Saludos

              • Avatar-5 Julian Lasso 05/04/2011

                Se puede decir que Node.js es como decir un C pero en JavaScript para poder trabajar fuera del navegador?

                • Avatar-2 arleyb 07/04/2011

                  Excelente articulo, por estos días he estado mirando varia información sobre Node.Js, Websockets, Comet y Reverse Ajax, tanto ejemplos como documentación y resultados de rendimiento para estas tecnologías. La idea de todo esto es poder implementar un chat basado en Node.Js integrado con ExtJs donde el servidor sea quién envíe las respuestas al cliente cuando ocurra un evento y no al contrario como normalmente lo haríamos con Ajax. Me gustaría saber si se publicarán más tutoriales sobre este tema o si alguien está interesado en conformar un grupo de trabajo para llevar a cabo esta idea. Saludos!!

                  • Avatar-12 oscar 21/09/2011

                    Oye y cuando en windows de eso casi no hay nada

                    • Avatar-4 Walter 26/09/2011

                      Si ejecuta codigo del lado del servidor, ¡como se instala en un servidor web (hosting)?

                      • Avatar-4 DevCH 24/10/2011

                        Ya lo instale en Mac OSX, hice pruebas y todo bien, pero reinicié el server y no arrancó, como lo arranco de nuevo.

                        • Avatar-8 yoel 27/10/2011

                          excelente, gracias

                          • Avatar-2 Juan 06/02/2012

                            Yo tambien quiero aprender y dar mi aporte a la comunidad

                            • Avatar-3 saga33 29/12/2014

                              Muy buena aportación, gracias.

                              • Avatar-7 Yhonaikel 13/01/2016

                                para hacer el bots con node.js cual carpeta descargo <

                                • Avatar-4 Hey I'm new to here It is magnificent! Please will you check out my site and give me a ranking on my responses: 8 Ball Pool Mod Thankyou. 29/09/2016

                                  Hey I'm new to here It is magnificent! Please will you check out my site and give me a ranking on my responses: 8 Ball Pool Mod Thankyou.

                                  Instructor del curso

                                  Crysfel3

                                  Autor: Crysfel Villa

                                  Soy un geek que disfruta crear y compartir cosas en internet! Sígueme en twitter @crysfel