Guía-tutorial Node.js: todo lo que necesitas para empezar

Node.js causó un auténtico impacto en el año de su aparición, allá por 2009. Muy pronto los desarrolladores comenzaron a adoptar  este nuevo intérprete JavaScript basado en el V8 de Google. La razón de esta buena acogida entre los profesionales del sector se debe a dos factores:

  • Está basado en un lenguaje conocido por la comunidad, como es el lenguaje JavaScript
  • Es un gestor de dependencias npm: se trata del gestor de dependencias por excelencia de node.js. Es ampliamente utilizado y su uso es sencillo. Veremos cómo utilizarlo más adelante.

Se trata de un entorno Javascript del lado del servidor que se dirige por eventos y utiliza un modelo asíncrono. En el artículo “The Mean Stack: el pura sangre de los Stack“, te explicamos con más detalle las características de uno de los perfiles IT más demandados en la actualidad.

Tutoriales de nuestro proyecto:

  1. Introducción: Mean Stack
  2. Guia tutorial Node.JS
  3. Guia-tutoria Express
  4. Guia-tutorial MongoDB
  5. Desarrollando nuestro proyecto

 

¿Cómo comenzar con Node.js?

Para iniciar un proyecto escribiremos en la línea de comandos:

#:> npm init

Esto creará un fichero package.json, que como veremos luego, servirá para almacenar todas las dependencias y paquetes que usa nuestro proyecto.

Programación asíncrona

Cuando desde nuestro programa accedemos a un recurso en disco, incluso en un disco SSD, estamos tardando un 1.3 microsegundos en acceder a un KiloByte. En la red esto empeora, con tiempos de 20 milisegundos. En los programas multi-hilo, aquellos procedimientos que no necesitan esta comunicación de entrada-salida para funcionar, se pueden ejecutar en un nuevo hilo. En Node.js, sólo hay un hilo, pero eso no significa que el motor V8 que hay bajo el capó, no sea multi-hilo. Veamos el siguiente ejemplo:

Guía-tutorial sobre Node.js

Si ejecutamos el programa, vamos a un navegador Y ponemos http://nuestraIP:3000 veremos en la consola que la línea:

console.log(‘Obteniendo la IP’);

Se imprime antes de la línea console.log(‘Ya tengo la IP’)

El proceso de obtención de la respuesta de ipinfo.io, se ejecuta pero el programa sigue su curso y una vez obtenida, se imprime la respuesta en pantalla. Antes de que eso ocurriera, se imprimió “Obteniendo la IP”, es decir, la solicitud a ipinfo.io se ha hecho de manera asíncrona, asignando un callback (.end) a la función una vez terminada la operación.

Modular

Vemos en el código anterior cómo hemos extendido el funcionamiento de nuestra aplicación con la simple inclusión de un módulo llamado superagent. Para poder incluirlo previamente hemos tenido que instalarlo en nuestro proyecto con npm, el gestor de dependencias de JavaScript por defecto para Node.js. Nos permite gestionar e instalar fácilmente las dependencias de nuestro proyecto.

Así para instalar ésta dependencia, en Linux, escribimos:

#:> npm install superagent –-save

Explicamos brevemente: npm es el ejecutable, para que esté disponible en nuestra línea de comandos, tenemos que haber instalado node.js previamente. Con install, le decimos precisamente que instale el paquete superagent y con el modificador –save, le indicamos que actualice la dependencia en el archivo package.json, residente en la raíz de nuestro proyecto y que contiene (o debe contener) toda la información necesaria para ejecutar nuestro proyecto.

Cuando portemos nuestro proyecto a otro lugar, no necesitaremos llevarnos las librerías o módulos, sino sólo el archivo package.json. Luego con el comando: npm install instalaremos todas las dependencias necesarias. Así nuestro proyecto también será un paquete, importable en otros proyectos con su información de dependencias.

Ligero

En este caso nuestra aplicación no hace gran cosa, pero fijémonos en que tenemos un servidor web y un programa que hace solicitudes a una API en menos de 1Kb. Las dependencias express y superagent ocupan algo más claro, pero tengamos en cuenta que express es un framework completo con una funcionalidad muy potente (en realidad ni siquiera lo necesitaríamos para conseguir hacer lo que hace nuestro programa)

Rápido

Node.js soporta decenas de miles de conexiones concurrentes con un hardware estándar. Además ha probado ser un 20% más rápido como mínimo que otros intérpretes, incluso en lenguajes de código compilado.

Programación orientada a eventos

JavaScript siempre había sido utilizado para detectar las acciones del usuario e interaccionar con el DOM (Document Object Model) por tanto ahora este paradigma se venía al lado oscuro. En el lado del servidor, el programa que diseñamos dispone de un bucle que está constantemente escuchando por eventos. Es el Node.js Event Loop.

Este bucle infinito está constantemente a la escucha de eventos. Estos eventos pueden ser generados por el usuario, o bien pueden ser autogenerados. En el programa anterior el evento desencadenante de la solicitud es que el usuario accede con un get request a la raíz de nuestro servidor web lanzado por el programa en el puerto 3000.

Ante dicho evento, el programa reacciona, y realiza una solicitud get a ipinfo.io. Entonces se produce otro evento, esta vez no generado por el usuario, sino como respuesta a la solicitud anterior. En ese momento (.end) se pueden producir dos resultados, err y send, y actuamos en consecuencia.

Guía-Tutorial Node.js

 

Como verás, en Digital Tech Institute realizamos formación especializada en nuevas tecnologías. Con el máster en Full Stack Development – The Mean aprenderás todo lo necesario para convertirte en un experto en el desarrollo de aplicaciones Back-end y Front-end. También conocerás tecnologías asociadas como Javascript, NodeJS, ES6, MongoDB y Jquery UI entre otros. ¡Apúntate ya!

Port Relacionados

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies

ACEPTAR
Aviso de cookies