Node.js, es el entorno de ejecución de JavaScript por el lado del servidor (server-side).

Esta construido sobre el motor JavaScript V8 de Google Chrome, utilizado generalmente para la creación de servidores web, pero no se limita sólo a ello.

Node.js es open source, multiplataforma, y desde su introducción en el año 2009, se hizo muy popular, entre los programadores de aplicaciones web.

Si las estrellas de GitHub son un factor que indican popularidad, tener más de 46000 estrellas, significa ser muy popular.

Introducción a Node.js, conoce sobre esta poderosa tecnología para crear aplicaciones web y servicios APIRestFul. Clic para tuitear

Características de Node.js

Velocidad

Uno de los principales puntos fuertes de Node.js, es la velocidad. El código JavaScript que se ejecuta puede llegar a ser el doble de rápido, que el código de los lenguajes compilados como Java o C.

Tiempos de ejecución en ordenes más rápidos, que los lenguajes interpretados como Python o Ruby, todo esto debido a su paradigma no bloqueante.

Simple

Node.js es simple. Extremadamente simple diríamos nosotros.

JavaScript

Node ejecuta código JavaScript. Esto hace posible que millones, de programadores JavaScript FrontEnd, puedan ejecutar código JavaScript, en el lado del servidor BackEnd, permitiendo integrar el mismo lenguaje de programación en ambos escenarios.

En Node.js, se puede utilizar todo lo nuevo de EcmaScript, ya que no tiene que esperar que los usuarios actualicen sus navegadores. Lo anterior no es necesario ya que se ejecuta en el servidor.

Plataforma Asíncrona

En los lenguajes de programación tradicionales (C, Java, Python, PHP), todas las instrucciones, están bloqueadas por momentos predeterminados, a menos que explícitamente “opte” realizar operaciones asincrónicas.

Si realizas una solicitud de red para leer algunos datos del tipo JSON, la ejecución, de ese subproceso en particular, se bloquea hasta que la respuesta se encuentre lista.

JavaScript permite crear código asincrónico y sin bloqueo de una manera muy simple, mediante el uso de un solo hilo, funciones de devolución de llamada y programación controlada por eventos.

Cada vez que se produce una operación costosa, llamamos a una función de devolución de llamada, que se llamará una vez que podamos continuar con el procesamiento. No estamos esperando que eso termine antes de continuar con el resto de la aplicación.

Ejemplo de una simple aplicación con Node.js

Ejemplo sencillo de un servidor web, que muestra un Hola Mundo.

const http = require('http')
const hostname = '127.0.0.1'
const port = 3000
const server = http.createServer((req, res) => {
  res.statusCode = 200
  res.setHeader('Content-Type', 'text/plain') 
  res.end('Hola Mundo\n')
})
server.listen(port, hostname, () => {
  console.log(`Servidor ejecutandose en http://${hostname}:${port}/`)
}) 

Para ejecutar el código anterior, debemos guardarlo como server.js, luego ejecutar node server.js en la terminal.

Este código incluye un módulo llamado ‘http’.

Luego se definen dos constantes, como el hostname, haciendo referencia al mismo equipo, y el puerto de comunicación.

Se invoca al método createServer del módulo http, que permite crear servidores HTTP, y también programamos la respuesta.

Finalmente indicamos a la variable server escuchar en el puerto 3000, y al hacer ello invocamos al método creado.

Node.js Frameworks y herramientas

Node.js es una plataforma de bajo nivel, y para hacer las cosas más fáciles e interesantes para los desarrolladores, existen miles de bibliotecas, que fueron construidas sobre Node.js.

A continuación mencionamos las más conocidas y utilizadas:

  • Express, una de las formas más simples pero poderosas de crear un servidor web. Es minimalista, centrado en las características principales de un servidor, es clave para su éxito de tu proyecto.
  • Meteor, un marco poderoso full-stack, que te proporciona un isomorfo enfoque para crear aplicaciones con JavaScript, compartir código en el cliente y el servidor. Una herramienta lista para usar, ahora se integra con bibliotecas frontend como React, Vue y Angular. También se puede usar para crear aplicaciones móviles.
  • Koa, construido por el mismo equipo detrás de Express, pretende ser aún más simple y pequeño, construyendo sobre años de conocimiento. El nuevo proyecto nacido de la necesidad de crear cambios incompatibles sin interrumpir la comunidad existente.
  • Next.js, un framework para renderizar aplicaciones React del lado del servidor.
  • Micro, un servidor muy ligero para crear microservicios HTTP asíncronos.
  • Socket.io, un motor de comunicación en tiempo real para construir aplicaciones de red.

Si deseas conocer mucho más de Node y ser todo un experto, revisa el siguiente enlace.

Si te gusto el artículo, no olvides compartirlo y suscribirte a nuestro NesLetter.

Etiquetado en:

,

Acerca del Autor

Grover Vásquez

Profesional de TI con más de 10 años de experiencia, en el campo de las Tecnologías de la Información, Programación y Seguridad de la Información. Instructor Online y presencial de cursos de programación de aplicaciones.

Ver Artículos