Qué es Node.js y para qué sirve

Qué es Node.js y para qué sirve
4.4
(15)

Para entender bien qué es Node.js y para qué sirve, es necesario tener alguna noción básica de lenguajes de programación, especialmente de JavaScript, el lenguaje en el que se basa Node.js.

Así que, mejor empezamos por el principio 🙂 .

JavaScript, también conocido por su abreviatura JS, es un lenguaje de programación dinámico y capaz de analizar e interpretar otros programas. Se define como un lenguaje orientado a objetos, basado en prototipos, imperativo y débilmente tipado.

Todos los navegadores soportan completamente JavaScript, sin necesidad de un compilador o cualquier otra aplicación de terceros. El navegador lee e interpreta perfectamente el código, por lo que junto a HTML y CSS se considera uno de los tres lenguajes nativos de la World Wide Web.

JavaScript fue diseñado con el objetivo de aportar dinamismo y características interactivas a páginas web, así como para la creación de aplicaciones web.

Cuando una página se abre en una ventana emergente, un botón o CTA cambia de color cuando pasas el ratón por encima o que se muestra un carrusel de imágenes, esto es todo «culpa» de JavaScript.

Además de aplicaciones o páginas web, JavaScript es un lenguaje de programación muy utilizado en entornos que no se basan en la web como, por ejemplo, documentos PDF, widgets de escritorio, aplicaciones de móvil o videojuegos.

Tras esta introducción sobre JavaScript, ya podemos ir directamente a lo que estabas buscando. A continuación veremos qué es Node.js y para qué sirve, así como una introducción al uso de Node.js (instalación, cambio de versión e instalación de un módulo MNP).

¿Qué es Node.js?

Node.js es un entorno de tiempo de ejecución de JavaScript, de ahí su terminación «.js». Este entorno de tiempo es open source, es decir, de código abierto, multiplataforma y que se ejecuta del lado del servidor.

Este entorno fue creado por los desarrolladores de JavaScript con el objetivo de ir un paso más allá con este lenguaje de programación.

Hasta la creación de Node.js, allá por el año 2009, el lenguaje de programación JavaScript únicamente podía ejecutarse del lado del navegador o cliente, pero… ¿Qué ocurría si queríamos ejecutar este lenguaje fuera del navegador o del lado del servidor?

Como JavaScript únicamente se podía utilizar dentro del marco de las etiquetas <script> </script>, los desarrolladores tenían que tirar de diferentes lenguajes y herramientas tanto en el frontend como en el backend.

Node.js posee todo lo necesario para ejecutar código JavaScript del lado del servidor. Algo que facilita mucho el trabajo de los desarrolladores y el motivo por el que actualmente sea una de las herramientas de trabajo más usadas en desarrollo web.

Arquitectura de Node.JS

Precisamente que sea una de las herramientas más utilizadas en el mundo del desarrollo web es gracias a su arquitectura.

Programación asíncrona

Uno de los puntos fuertes de Node.js es Event Loop, también conocido como Bucle de eventos, un modelo que permite gestionar una gran cantidad de eventos de forma asíncrona, ya que se ejecutan de forma independiente y sin interferir unos en otros.

Para conseguir esto, Node.js ha modificado la forma en la que se realizan las conexiones al servidor. En vez de generar un hilo para cada cliente, algo que resulta muy ineficaz debido al alto consumo de memoria RAM ante múltiples conexiones, utiliza un modelo en el que genera un evento para cada petición que se gestiona de manera independiente y sin bloqueos.

Esta capacidad de dar respuesta a muchas más peticiones de forma concurrente, hace de Node.js un entorno muy estable y con gran rendimiento, especialmente para proyectos de gran envergadura.

Motor V8 de Google

Node.js está basado en el motor V8 de Google, uno de los intérpretes de lenguaje de programación que existen. Este motor se encarga de compilar el código JavaScript en código de máquina, un código de nivel más bajo que no hace falta que sea interpretado por el navegador.

¿El resultado? Mayor velocidad y rendimiento.

Ventajas y desventajas de Node.js

La arquitectura basada en eventos asíncronos de Node.js y la utilización del motor V8 de Google convierte a Node.js en uno de los entornos de ejecución con más crecimiento y el preferido para el desarrollo de aplicaciones web o de escritorio. Y es que las ventajas no son pocas:

  • Escalable: al poder procesar tantas conexiones de forma simultánea, Node.js es un entono perfecto para construir aplicaciones en red escalables con un alto nivel de rendimiento.
  • Rendimiento y eficacia: la ejecución de procesos sin bloqueo y la utilización de menos recursos convierte a Node.js en un entorno rápido y muy eficaz.
  • Facilidad: Node.js es el entono que utiliza JavaScript, un lenguaje muy bien estructurado y relativamente fácil de aprender.
  • Open source: es un software de código libre, esto quiere decir que el código es abierto y no es necesario poseer ninguna licencia para su utilización.
  • Comunidad y soporte: el uso y crecimiento de Node.js, así como la implementación de plataformas como GitHub ha hecho que la comunidad de Node.js crezca y se mantenga activa con el objetivo de mantener y mejorar este entorno, así como la disponibilidad de documentación relativa a este entorno de ejecución.

Eso sí, no siempre es oro todo lo que reluce. Este entorno de ejecución también puede presentar algunos inconvenientes como los que te muestro aquí.

  • Curva de aprendizaje: Node.js dista mucho de otros sistemas y requiere de más líneas de codificación, algo que puede resultar mucho más tedioso si estás acostumbrado a trabajar con otros sistemas o lenguajes de programación como PHP.
  • Compatibilidad: no todos los planes de alojamiento web son compatibles con Node.js, por lo que para utilizarlo necesitas un Hosting especializado en Node.js.
  • Módulos en desarrollo: aunque Node.js posee un sistema llamado NPM de módulos o dependencias, pueden resultar escasos si los comparas con otros sistemas.
  • Documentación: aunque sí es cierto que es un entorno que no para de crecer, mucha documentación todavía se encuentra sin traducir. ¡Esto es solo temporal! 🙂

Para qué sirve Node.js

Después de entender qué es Node.js y cómo funciona, estoy casi segura de que ya te haces una idea de para qué sirve este entorno, ¿verdad?

Node.js sirve para crear sitios web dinámicos muy eficientes, escritos con el lenguaje de programación JavaScript. Normalmente, los desarrolladores se decantan por este entorno de ejecución cuando buscan que los procesos se ejecuten de forma ágil y sin ningún tipo de bloqueo cuando las conexiones se multiplican.

Por ejemplo, en aplicaciones IOT (Internet de las cosas), aplicaciones de transmisión de datos, aplicaciones basadas en REST API o aplicaciones de mensajería instantánea lo más utilizado es Node.js, ya que resulta muy estable y rápido frente a miles de conexiones simultáneas.

Para que te hagas una idea, estas aplicaciones y sitios web están ejecutados en Node.js:

  • Twitter
  • Adobe
  • Spotify
  • Github.com
  • Nytimes.com
  • Medium.com

En cambio, no es tan habitual utilizar este entorno en aplicaciones que requieren muy pocas conexiones simultáneas, pero sí una gran demanda de recursos.

¿Node.js es un framework?

Quiero responder esta pregunta porque cuando te estás adentrando en esto es muy usual que surja esta duda: ¿Node.js es un framework?

No. Node.js no es ni una plataforma para desarrollar aplicaciones ni tampoco es un lenguaje de programación.

Node.js es un entorno para ejecutar JavaScript fuera del navegador. Utiliza el lenguaje de programación Node.js y también frameworks para el desarrollo de apps como Express.js o Meteor.js.

Instalación de Node.js en Windows, Linux y Mac

Una vez vista la teoría, pasamos a la parte práctica.

Antes de nada, comprueba si está instalado Node.js

En algunos planes de alojamiento como nuestro Hosting Node.js, ya tienes Node.js instalado, por lo que puedes saltarte este paso.

En cambio, si utilizas otro proveedor de hosting, puedes comprobar fácilmente si ya tienes Node.js instalado o no. Para ello, accede por SSH a tu servicio y ejecuta el siguiente comando:

node -v

Si tienes Node.js instalado, la respuesta del comando será la versión que está actualmente corriendo en el sistema.

En cambio, si no está instalado, la respuesta indicaría que no se reconoce el comando. De ser así, lo primero que tienes que hacer es dirigirte a la web oficial de Node.js y descargar el instalador para el sistema operativo que vayas a utilizar.

Instalar Node.js en Windows

Una vez descargado el instalador de Windows, lo ejecutas y te aparecerá la siguiente pantalla.

Instalar Node.js en Windows

Avanza en el proceso de instalación y, una vez finalizado, podrás comprobar de una forma sencilla si está instalado correctamente. Para ello, abre el terminal de tu ordenador pulsando la tecla «Windows» y escribiendo «cmd». Ahora selecciona «Símbolo de sistema».

Abrir símbolo del sistema para instalar Node.js en Windows

En la ventana de comandos escribe node -v y pulsa Enter. Si Node.js está correctamente instalado te aparecerá la versión que tienes instalada.

Abrir símbolo del sistema versión para instalar Node.js en Windows

Para comprobar la instalación de NPM, el comando que debes escribir es npm -v y si está todo correcto nos mostrará la versión del Node Package Manager.

Comprobar la instalación de NPM en Windows

Instalar Node.js en Linux

La instalación tanto de Node.js como de NPM se realiza a través de línea de comandos, utilizando SSH.

Los binarios de NodeJS para Ubuntu, Debian, CentOS y otras distribuciones los ofrece NodeSource. Puedes ver la documentación en el repositorio oficial.

Como ejemplo, la instalación de la versión 17.x de Node.js se realiza con los siguientes comandos:

Para Ubuntu:

curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -

sudo apt-get install -y nodejs

Para Debian:

curl -fsSL https://deb.nodesource.com/setup_17.x | bash -

apt-get install -y nodejs

Finalmente, puedes comprobar que está instalado tal como indicamos anteriormente.

Comprobar la instalación de Node.js en Linux

Instalar Node.js en Mac

Una vez descargado el instalador de Mac desde la página oficial, solamente ejecútalo siguiendo los pasos que se indican.

Al finalizar el proceso podrás comprobar que la instalación es correcta ejecutando en el terminal los siguientes comandos:

node --version
npm --version

Si todo está correcto, el primer comando te mostrará la versión de NodeJS y el segundo la versión de NPM instalada.

Cómo cambiar la versión de Node.js

Tanto en Windows como en Mac, para actualizar NodeJS solamente necesitas descargar el instalador de la versión a la que quieras actualizar y ejecutarlo. El propio instalador actualizará la versión de NodJS si ya tenemos una versión anterior en nuestro equipo.

En el caso de Linux, puedes actualizarlo utilizando «n».

Lo primero de todo es limpiar la caché que genera NPM. Puedes hacerlo ejecutando el siguiente comando:

sudo npm cache clean -f

El siguiente paso es instalar «n», una herramienta de administración de Node.js.

sudo npm install -g n

Ahora instala la última versión estable.

sudo n stable

Al realizar la comprobación de versión de Node.js, debe coincidir con la que aparece en este listado de versiones.

sudo npm --version

Si deseas instalar alguna versión en concreto podemos hacerlo de la siguiente forma:

sudo n 6.11.2

Para finalizar, instala la última versión de NPM.

npm search paquete-a-buscar

Instalación de paquetes NPM

Para instalar un paquete NPM, lo primero que tienes que hacer es buscarlo ejecutando este comando:

npm search paquete-a-buscar

Por ejemplo, para el paquete «node-inspector», el comando que tienes que ejecutar es:

npm search node-inspector

Buscar el paquete "Node Inspector" en Node.js

Una vez localizado, puedes ver más información sobre el paquete utilizando el comando:

npm show

Acceder a la información de un paquete en Node.js

Para instalar un paquete tendrás que utilizar el comando «npm install», situado en la carpeta de tu proyecto. Esto instalará el paquete y todas las dependencias. También actualiza el fichero «package.json» añadiendo el paquete y su versión como una dependencia del proyecto.

¿Alguna duda?

Una vez visto qué es Node.js, para qué sirve y cómo instalar Node.js en tu plan de hosting, ¿tienes alguna pregunta? Si es así, déjame un comentario aquí abajo y te echo una mano 🙂 .

¡Puntúa este artículo!

Total votos: 15. Promedio: 4.4

Tags:
8 Comentarios
  • dan
    Posted at 23:51h, 17 enero Responder

    se puede usar node.js y php dentro del mismo proyecto ya sea para el dominio principal y para subdominios? o tengo q decantarme por alguno de los dos

    • María Acibeiro
      Posted at 09:37h, 18 enero Responder

      Hola Dan,

      Efectivamente, puedes usar Node.js y PHP en el mismo plan de hosting. Después, en cada uno de los dominios o subdominios puedes utilizar el lenguaje de programación que quieras. Eso sí, en LucusHost esto puedes hacerlo en los planes de Hosting Node.js o en Hosting Elástico, pero en los planes de Hosting SSD no es posible.

      Cualquier cosa, no dudes en escribirnos a contacto@lucushost.com y te echamos una mano 🙂

  • Luis Roberto Romero Osorio
    Posted at 17:00h, 12 octubre Responder

    Me cuesta trabajo ingresar al mundo Web, pues mi trayectoria han sido sistemas corporativos y muy poco en la Web y estos artículos me permiten entender y comprender este otro mundo, pues las redes sociales son ahora las que marcan tendencia y entenderlas para mí es relevante. Gracias por el artículo

    • María Acibeiro
      Posted at 08:31h, 13 octubre Responder

      ¡Muchas gracias a ti por leernos, Luis! 🙂

  • Joshua Arfa
    Posted at 20:06h, 07 septiembre Responder

    Muy buen artículo! contiene información enriquecedora. Solamente muchas gracias.

    Una duda que son y para que sirven los paquetes ¿npm? De antemano muchas gracias.

    • María Acibeiro
      Posted at 10:21h, 08 septiembre Responder

      Hola Joshua,

      NPM es un sistema que te permite instalar fácilmente cualquier módulo o dependencia para tus aplicaciones Node.js como, por ejemplo, PHPMailer (una librería que permitirá a tu aplicación realizar envíos de correo electrónico).

      ¡Gracias a ti por leernos!

  • Juan Carlos Ayuso
    Posted at 10:54h, 10 febrero Responder

    Un artículo interesante y, sobre todo, muy bien escrito.. Detalle muy importante pero que se suele pasar por alto al navegar por Internet.
    Felicidades a la autora,
    JC

    • María Acibeiro
      Posted at 12:36h, 10 febrero Responder

      ¡Muchísimas gracias Juan Carlos! Me alegro e que te haya gustado 🙂

Escribe un comentario