Node.js: guía de inicio y tutorial

Node.js: guía de inicio y tutorial


Javascript Node.Js Sql

Es fácil iniciar con Node.js. Descubre cómo instalarlo, sigue el tutorial y aprende a crear un server en Node.js

Node.js qué es

Node.js es un runtime JavaScript construido en el motor JavaScript V8 de Chrome. No es ni un lenguaje de programación ni un framework.

Podemos definir node.js como un ambiente que nos permite ejecutar el código Javascript más allá del browser. Como sabrás Javascript es un lenguaje de programación puramente front-end que nos permite manipular el DOM y hacer que nuestras páginas web sean interactivas. Sin embargo, con Node.js tenemos la posibilidad de desarrollar una aplicación web completa, front-end y back-end, utilizando un solo lenguaje de programación. 

Node.js está construido sobre el motor JavaScript V8 de Chrome. ¿Pero qué significa exactamente?

V8 es el nombre del motor desarrollado por Google para ejecutar y compilar Javascript, se utiliza en Chrome y en Node.js. El motor V8 está escrito en C++, implementa ECMAScript y puede ser ejecutado automáticamente o se puede incorporar en cualquier aplicación C++.

Cómo funciona Node.js

Node.js utiliza el Event Loop a thread singular para gestionar las diferentes operaciones de input/output (lectura/escribir archivos, acceso database, solicitudes de red) de forma asíncrona y sin bloqueos.

En los modelos multi-thread cuando más clientes envían una solicitud, el server elabora las solicitudes y las asigna a cada de ellas un thread. Los thread se utilizan para gestionar más clientes simultáneamente.

Node.js funciona de manera diferente ya que es un modelo a thread singular, el Event Loop le permite gestionar más clientes contemporáneamente. 

El Event Loop no es otra cosa que un ciclo de eventos, su tarea principal es la de esperar las solicitudes a tiempo indefinido. Cada vez que llega una solicitud, Node.js la mete en una lista (queue). El Event Loop toma la solicitud de la cola y ve si quiere una operación de bloqueo input/output (I/O). En caso contrario, elabora la solicitud y envía una respuesta.  

Si la solicitud tiene que realizar una solicitud de bloqueo, el Event Loop asigna un thread para procesar la solicitud. Node.js tiene un número limitado de thread en acción y se definen como worker threads.

El Event Loop tiene seguimiento de las solicitudes de bloqueo y las añade en cada cola una vez elaborada la actividad de bloqueo. De esta manera mantiene su naturaleza no bloqueante.

¿Para qué sirve Node.js?

Node.js sirve principalmente para la creación de un server, para implementar API REST o GraphQL, para la realización de un sistema de autenticación, para la gestión de los datos y para interactuar con API de terceras partes.

Cuando usarlo

Node.js es la solución ideal para el desarrollo de aplicaciones Web Real Time, a menudo se utiliza para la creación de chatbot, para el streaming de datos y para aplicaciones en una única página.

Pros

  • Node.js ayuda a las versiones principales a largo plazo, tiene una gran community de desarrolladores activos y cuenta con el más grande repository de paquetes open source del mundo, NPM, que actualmente contiene más de un millón de paquetes.
  • El uso de JavaScript tanto para el back-end como para el front-end se traduce en una mayor eficacia y esto permite a los desarrolladores ahorrar mucho tiempo.
  • Node.js utiliza menos thread y por lo tanto, menos recursos/memoria, esto permite una ejecución de las actividades más rápida.
  • Node.js es un componente fundamental para las aplicaciones stack MEAN, MERN o MEVN. Un stack a menudo está constituído por un database (SQL o NoSQL), tecnología back-end (Node.js y Express.js) y front-end (Angular, React o Vue).

Contras

  • Siendo un thread singular, Node.js no es ideal para procesar actividades pesadas y de alta intensidad, el uso de lenguajes multi-thread como Java son la mejor elección.
  • Los paquetes NPM pueden simplificar el trabajo de los desarrolladores. Sin embargo, no todos los paquetes presentados son de alta calidad, algunos son incompletos y no documentados correctamente.

Alternativas

Para desarrollar aplicaciones web lado server es posible utilizar diferentes lenguajes y framework como por ejemplo:

  • Python con flask o django
  • PHP con Laravel
  • Ruby con Ruby on Rails
  • ASP.NET y .NET Framework

Cómo instalar Node.js

  1. Visita la pagina Download del sitio oficial de Node,js y elige la versión que desees instalar. 
  2. Descarga el programa de instalación predeterminado para tu plataforma. 
  3. Una vez se ha comenzado con la instalación se abre una pantalla, sigue los pasos predeterminados dejando los ajustes predeterminados.
  4. Para verificar que se ha completado la instalación con éxito abre el terminal y teclea el comando "node -v", de esta manera obtendrás el número de la versión node.js que has apenas instalado.

En Windows

Descarga Windows Installer directamente desde la página Web nodejs.org.

En Mac

Descarga macOS Installer directamente desde la página web Web nodejs.org. Puedes elegir entre dos formatos, .pkg (aconsejada) y .tar.gz.

Con Homebrew

  1. Abre el terminal y usa el siguiente comando: brew install node
  2. Verifica la instalación a través del comando: node -v

En Linux

Con Ubuntu 18.04 puedes instalar Node.js a través del repository oficial de Ubuntu.

  1. Abre el terminal y usa el siguiente comando: sudo apt install nodejs
  2. Verifica la instalación a través del comando: node -v

Diferencia entre la versión LTS y la versión actual

LTS es el acrónimo de Long Term Support, ayuda a largo plazo, la versión Node LTS es la más estable y segura. Las aplicaciones en fase de desarrollo tendrían que utilizar las versiones LTS

La versión actual es aquella en fase de desarrollo activo. En general Node.js emite una nueva versión principal cada 6 meses.

Tutorial Node.js

En este tutorial encontrarás un ejemplo que te ayudará a crear un server en Node.js.

Crear un server con Node.js

Abrimos el editor de texto, creamos un nuevo documento "app.js" y comenzamos.

//importamos el módulo http

const http = require('http')

//pongamos una puerta

const port = 3000

//creamos un server

//req y res son la abreviación de request y response

const server = http.createServer((req, res) => {

    //veámos de que se compone una solicitud

    console.log(req);

    //respondemos a la solicitud con una página html

    res.setHeader('Content-type', 'text/html')

    //escribimos el título

    res.write('<h1>Ho creato un server con Node.js</h1>');

    //terminamos el proceso de respuesta

    res.end();

})

//ponemos al server en escucha en la puerta que hemos programado

server.listen(port, () => {

    //verificamos que el server está en funcionamiento

    console.log(`Server is running on port:${port}`);

})

Http es un módulo incluido dentro de Node.js que permite activar un servidor y transferir datos a través de un protocolo HTTP. Para poderlo usar los módulos de Node.js antes tenemos que incluirlos dentro de nuestros documentos javascript, require nos permite hacer esto.

El server está configurado para escuchar en el puerto especificado, en este caso el número 3000.

Utilizamos el método createServer() de http para elaborar un solicitud (request) y una respuesta (response), la función nos permitirá ver en la consola de que está hecha un petición y responder con una página tipo html, el método setHeader() permite configurar el tipo de contenido a devolver.

El método write() envían una parte del cuerpo de la respuesta, en nuestro caso el trozo es una cuerda "<h1> he creado el server con Node.js</h1>". Por último terminamos el proceso de respuesta con el método end().

Ponemos el server en escucha con el método listen() en nuestro puerto y verificamos que esté en funcionamiento. Si todo va como hemos previsto encontraremos nuestro mensaje de confirmación en el terminal.

Para activar el server abre el terminal e digita il seguente comando: node app.js

En el terminal tendrías que leer "Server is running on port 3000". Ahora visita http://localhost:3000/, el link devolverá la respuesta que establecimos. Vuelve al terminal, verás la solicitud que acabas de enviar a tu servidor.

¡Enhorabuena, has creado tu primer servidor en Node.js!

Curso de programación Aulab Hackademy

Conviértete en Desarrollador weben 6 meses

Descubre el bootcamp de programación Hackademy

Programa Completo

© 2022 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad