Skip to content

Diferencias entre Node.js y el navegador

Tanto el navegador como Node.js utilizan JavaScript como su lenguaje de programación. La construcción de aplicaciones que se ejecutan en el navegador es completamente diferente a la construcción de una aplicación Node.js. A pesar de que siempre es JavaScript, hay algunas diferencias clave que hacen que la experiencia sea radicalmente diferente.

Desde la perspectiva de un desarrollador frontend que utiliza JavaScript extensamente, las aplicaciones Node.js traen consigo una gran ventaja: la comodidad de programar todo - el frontend y el backend - en un solo lenguaje.

Tienes una gran oportunidad porque sabemos lo difícil que es aprender un lenguaje de programación de forma completa y profunda, y al utilizar el mismo lenguaje para realizar todo tu trabajo en la web - tanto en el cliente como en el servidor, te encuentras en una posición de ventaja única.

TIP

Lo que cambia es el ecosistema.

En el navegador, la mayor parte del tiempo lo que estás haciendo es interactuar con el DOM, u otras APIs de la Plataforma Web como las Cookies. Éstas no existen en Node.js, por supuesto. No tienes el document, window y todos los demás objetos que proporciona el navegador.

Y en el navegador, no tenemos todas las buenas APIs que Node.js proporciona a través de sus módulos, como la funcionalidad de acceso al sistema de archivos.

Otra gran diferencia es que en Node.js tú controlas el entorno. A menos que estés construyendo una aplicación de código abierto que cualquiera pueda desplegar en cualquier lugar, sabes en qué versión de Node.js ejecutarás la aplicación. En comparación con el entorno del navegador, donde no tienes el lujo de elegir qué navegador utilizarán tus visitantes, esto es muy conveniente.

Esto significa que puedes escribir todo el JavaScript moderno ES2015+ que tu versión de Node.js soporte. Dado que JavaScript se mueve tan rápido, pero los navegadores pueden ser un poco lentos para actualizar, a veces en la web estás atascado con el uso de versiones más antiguas de JavaScript / ECMAScript. Puedes usar Babel para transformar tu código para que sea compatible con ES5 antes de enviarlo al navegador, pero en Node.js, no necesitarás eso.

Otra diferencia es que Node.js soporta tanto los sistemas de módulos CommonJS como ES (desde Node.js v12), mientras que en el navegador, estamos empezando a ver la implementación del estándar ES Modules.

En la práctica, esto significa que puedes usar tanto require() como import en Node.js, mientras que estás limitado a import en el navegador.