Node.js - Introducción

¿Qué es Node.js?

Node.js es una plataforma del lado del servidor construida sobre el motor JavaScript de Google Chrome (motor V8). Node.js fue desarrollado por Ryan Dahl en 2009 y su última versión es la v0.10.36. La definición de Node.js proporcionada por su documentación oficial es la siguiente:

Node.js es una plataforma basada en el tiempo de ejecución de JavaScript de Chrome para crear fácilmente aplicaciones de red rápidas y escalables. Node.

Node.js es un entorno de ejecución multiplataforma de código abierto para desarrollar aplicaciones de red y del lado del servidor. Las aplicaciones de Node.js están escritas en JavaScript y se pueden ejecutar dentro del tiempo de ejecución de Node.js en OS X, Microsoft Windows y Linux.

Node.js también proporciona una biblioteca rica de varios módulos de JavaScript que simplifica en gran medida el desarrollo de aplicaciones web que utilizan Node.js.

Node.js = Runtime Environment + JavaScript Library

Características de Node.js

A continuación se muestran algunas de las características importantes que hacen de Node.js la primera opción de los arquitectos de software.

  • Asynchronous and Event Driven- Todas las API de la biblioteca Node.js son asincrónicas, es decir, sin bloqueo. Básicamente, significa que un servidor basado en Node.js nunca espera a que una API devuelva datos. El servidor pasa a la siguiente API después de llamarlo y un mecanismo de notificación de Eventos de Node.js ayuda al servidor a obtener una respuesta de la llamada API anterior.

  • Very Fast - Al estar construida sobre el motor JavaScript V8 de Google Chrome, la biblioteca Node.js es muy rápida en la ejecución de código.

  • Single Threaded but Highly Scalable- Node.js usa un modelo de un solo subproceso con bucle de eventos. El mecanismo de eventos ayuda al servidor a responder de manera no bloqueante y hace que el servidor sea altamente escalable en comparación con los servidores tradicionales que crean subprocesos limitados para manejar solicitudes. Node.js utiliza un programa de un solo subproceso y el mismo programa puede proporcionar servicio a un número mucho mayor de solicitudes que los servidores tradicionales como Apache HTTP Server.

  • No Buffering- Las aplicaciones Node.js nunca almacenan datos en búfer. Estas aplicaciones simplemente generan los datos en trozos.

  • License- Node.js se publica bajo la licencia MIT .

¿Quién usa Node.js?

A continuación, se muestra el enlace en la wiki de github que contiene una lista exhaustiva de proyectos, aplicaciones y empresas que utilizan Node.js. Esta lista incluye eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo !, y Yammer, por nombrar algunos.

Conceptos

El siguiente diagrama muestra algunas partes importantes de Node.js que analizaremos en detalle en los capítulos siguientes.

¿Dónde usar Node.js?

Las siguientes son las áreas en las que Node.js está demostrando ser un socio tecnológico perfecto.

  • Aplicaciones vinculadas a E / S
  • Aplicaciones de transmisión de datos
  • Aplicaciones intensivas de datos en tiempo real (DIRT)
  • Aplicaciones basadas en API JSON
  • Aplicaciones de una sola página

¿Dónde no usar Node.js?

No es recomendable utilizar Node.js para aplicaciones con uso intensivo de CPU.