¿Qué es Node JS?

Cuando estamos hablando sobre algunas variantes al ocupar JavaScript siempre nos toparemos con este peculiar entorno de ejecución como lo es Node.js. Este es un entorno de ejecución para la capa del servidor basado en JavaScript, de código abierto y multiplataforma para crear aplicaciones de red y del lado del servidor rápidas y escalables. Se ejecuta en el motor de ejecución de JavaScript V8, y utiliza una arquitectura de E/S basada en eventos y sin bloqueos, lo que la hace eficiente y adecuada para aplicaciones en tiempo real. Un dato peculiar es que todo Node JS Node.js está escrito en C, C++ y JavaScript.

Qué es NodeJS y para qué sirve | OpenWebinars

Node.js utiliza un modelo de entrada y salida sin bloqueo controlado por eventos que lo hace ligero y eficiente (con entrada nos referimos a solicitudes y con salida a respuestas). Puede referirse a cualquier operación, desde leer o escribir archivos de cualquier tipo hasta hacer una solicitud HTTP. 

La idea principal de Node.js es usar el modelo de entrada y salida sin bloqueo y controlado por eventos para seguir siendo liviano y eficiente frente a las aplicaciones en tiempo real de uso de datos que se ejecutan en los dispositivos. Es una plataforma que no dominará el mundo del desarrollo web pero si que satisface las necesidades de una gran mayoría de programadores. 

Como funciona Node JS

Cuando trabajamos con Node JS es como si estuviéramos trabajando HTML, CSS y JavaScript ya que para trabajar con las bases de datos no se deben de hacer con gestores externos, ya que este hace que lo trabajemos con su derivados que podemos encontrar en JavaScript. En pocas palabras podemos decir que Node.js presenta un bucle de eventos como una construcción en tiempo de ejecución en lugar de una biblioteca. Este bucle de eventos es invisible para el usuario.

Cuando estamos trabajando con Node JS podemos ver que el funcionamiento interno del entorno de ejecución para JavaScript, Node.js, es bastante interesante ya que Node.js opera en un solo subproceso, utilizando el modelo entrada y entrada sin bloqueo de la salida, lo que le permite soportar decenas de miles de conexiones al mismo tiempo mantenidas en el bucle de eventos.

Otra característica especial de Node.js es que está diseñado para simplificar la comunicación. No tiene subprocesos, pero te permite aprovechar múltiples núcleos en su entorno y compartir sockets entre procesos.

Node.js utiliza la arquitectura «Single Threaded Event Loop» para manejar múltiples clientes al mismo tiempo. Para entender en qué se diferencia de otros tiempos de ejecución, tenemos que entender cómo se manejan los clientes concurrentes multihilo en lenguajes como Java.

Cuando entramos a ver de mejor manera sobre el funcionamiento que posee Node JS encontraremos que posee un cumulo de pasos que sigue los cuales son:

  1. Node.js mantiene un pool de hilos limitado para atender las peticiones.
  2. Cada vez que llega una solicitud, Node.js la coloca en una cola.
  3. Ahora, el bucle de eventos de un solo hilo (el componente principal) entra en escena. Este bucle de eventos espera las peticiones indefinidamente.
  4. Cuando llega una solicitud, el bucle la recoge de la cola y comprueba si requiere una operación de entrada/salida de bloqueo. Si no es así, procesa la solicitud y envía una respuesta.
  5. Si la solicitud tiene una operación de bloqueo que realizar, el bucle de eventos asigna un hilo del pool de hilos internos para procesar la solicitud. Los hilos internos disponibles son limitados. Este grupo de hilos auxiliares se llama grupo de trabajadores.
  6. El bucle de eventos rastrea las solicitudes que se bloquean y las coloca en la cola una vez que se procesa la tarea que se bloquea. Así es como mantiene su naturaleza no bloqueante.

Características de Node JS

  1. Fácil de utilizar: Node.js es bastante fácil de empezar. Es una opción para los principiantes en el desarrollo web. Con un montón de tutoriales y una gran comunidad, empezar es muy fácil.
  2. Escalable: proporciona una gran escalabilidad para las aplicaciones. Node.js, al ser de un solo hilo, es capaz de manejar un gran número de conexiones simultáneas con un alto rendimiento.
  3. Velocidad: La ejecución de hilos sin bloqueo hace que Node.js sea aún más rápido y eficiente.
  4. Paquetes: existe un amplio conjunto de paquetes de Node.js de código abierto que pueden simplificar tu trabajo. Actualmente hay más de un millón de paquetes en el ecosistema NPM.
  5. Sólido respaldo: Nodo.js está escrito en C y C++, lo que le confiere rapidez y añade características como la compatibilidad con redes.
  6. Multiplataforma: el soporte multiplataforma le permite crear sitios web SaaS, aplicaciones de escritorio e incluso aplicaciones móviles, todo ello utilizando Node.js.
  7. Es mantenible: Node.js es una opción fácil para los desarrolladores ya que tanto el frontend como el backend pueden ser gestionados con JavaScript como un único lenguaje.

Como instalar Node JS

Si nosotros necesitamos trabajar con Node JS necesitaremos descargar su aplicación y la cual vamos a seguir los siguientes pasos que se encuentra en el siguiente video.