NodeJS es la plataforma de ejecución de Javascript de propósito general. Con NodeJS puedes ejecutar Javascript fuera del navegador para hacer programas de consola, servicios web, programas de interfaz gráfica y más.
NodeJS es una tecnología para el desarrollo de aplicaciones de propósito general. Básicamente consiste en una plataforma de ejecución de Javascript, lo que se conoce como un "runtime", sobre la que se pueden ejecutar todo tipo de programas.
Por decirlo de algún modo sencillo, NodeJS es el lenguaje Javascript sacado del contexto del navegador. Sus creadores supieron valorar la potencia del lenguaje Javascript y usaron el motor "V8" (el motor Javascript open source del navegador Chrome) para crear una plataforma de ejecución capaz de aprovechar el popular lenguaje para acometer una gran variedad de proyectos.
Con NodeJS se pueden construir aplicaciones web tradicionales, como sitios web. De hecho, existen diversos proyectos de CMS basados en Node. Sin embargo, el uso más común de NodeJS es el desarrollo de servicios web que devuelven datos en formato JSON, lo que llamamos habitualmente API REST. También con Node podemos construir aplicaciones de escritorio multiplataforma, compatibles con Windows Linux y Mac, así como programas de consola. Muchas herramientas del día a día de los desarrolladores están realizadas usando NodeJS, desde editores como Atom o VSCode, hasta automatizadores de tareas como Gulp o empaquetadores de assets como Webpack o Rollup.
Node tiene la característica de acometer muchas tareas con poco consumo de recursos, lo que lo hace especialmente interesante para el desarrollo de servicios de alta concurrencia con poca inversión en infraestructura. Puedes aprender mucho más a partir de los contenidos que encontrarás aquí.
Más información:
Artículos destacados de NodeJS:
Canales de eventos y clases en directo
Manuales
Más manuales
Tenemos 1 manuales más sobre NodeJS
Usos de NodeJS
NodeJS es un lenguaje que permite una gran cantidad de aplicaciones, útiles para todo tipo de usuarios pero sobretodo para desarrolladores.
Lenguaje backend: es una plataforma que permite programación del lado del servidor. Con NodeJS se realiza muy cómodamente servicios web basados en API REST u otras tecnologías como GraphQL. Por supuesto, también es posible desarrollar con Node sitios web tradicionales, incluso existen varios cms basados en está plataforma.
Programas de consola: la aplicación más directa de NodeJS sería la creación de programas de consola. Programas que se ejecutan mediante comandos en el terminal. De hecho la mayoría de las herramientas frontend están desarrolladas con esta plataforma de ejecución de Javascript.
Herramientas de desarrolladores: Muchas herramientas de desarrolladores, como el tooling frontend están desarrolladas en Node, como Webpack, Rollup o Gulp, entre muchas otras. Este sería un caso especial de las aplicaciones de consola.
Programas de escritorio: también es notable la aportación de Node.js en la creación de programas y aplicaciones que se ejecutan en los ordenadores de cualquier sistema operativo. Aplicaciones habituales como Visual Studio code, Atom, la aplicación de Slack y muchas otras están realizadas con NodeJS y un framework llamado Electron. De hecho, muchas herramientas que usamos los desarrolladores en el día a día se basan en NodeJS y están hechas con Electron, como VSCode o Slack.
Aplicaciones realtime: Node.js es muy útil para aplicaciones que hacen uso del tiempo real. Algunos ejemplos son aplicaciones de chat y juegos debido a su arquitectura orientada a eventos, así como sus capacidades asíncronas, que lo hacen excelente para situaciones en las que necesitas manejar una gran cantidad de conexiones concurrentes de muchos usuarios con una máquina relativamente poco potente.
Instalar NodeJS
Instalar NodeJS es tan sencillo como dirigirse a la página de Node y descargar el ejecutable que permite instalar el motor en nuestro sistema. Para Windows y Linux el proceso es tan sencillo como instalar cualquier otro programa.
En el caso de Linux en la página de descarga explican qué tenemos que hacer, dado que hay que agregar los repositorios oficiales de la plataforma y luego instalar los paquetes. Además que los comandos para realizar este proceso pueden variar entre distribuciones.
En el artículo de Instalar NodeJS hay más información si fuera necesaria.
Ahora bien, la recomendación para instalar NodeJS es realizarlo a través de algún gestor de versiones de Node, ya que nos permite tener varias versiones instaladas de la plataforma e intercambiarlas cuando se desee. Esta acción suele ser bastante necesaria si desarrollamos proyectos en NodeJS, porque muchas veces existen requisitos de versiones dependiendo el caso.
Los gestores de versiones más habituales son:
Nota: Aunque existe un nvm para Windows no es tan potente y estable como el de Linux y Mac, por lo que "n" podría ser más interesante.
Instalar NodeJS mediante algún gestor de versiones de node tiene otra ventaja, que nos ahorra algunos problemas típicos en sistemas Linux y Mac, donde a veces es necesario usar "sudo" para instalar paquetes de npm globales, algo que no siempre es recomendable.
Puedes encontrar aquí la información completa sobre el uso e instalación de nvm.
Diferencias entre NodeJS y Javascript en el navegador
Aunque ambos usan el mismo lenguaje, Javascript, hay unas diferencias importantes sobre estas dos plataformas de ejecución.
La diferencia principal diferencia consiste en el contexto de ejecución, mientras que NdeJS se ejecuta directamente sobre la plataforma Node que está directamente conectada con el sistema operativo, mientras que Javascript en el navegador se ejecuta dentro del contexto del cliente web.
Esta diferencia impacta principalmente en los recursos con los que contamos en ambas plataformas de ejecución:
- NodeJS tiene disponible el acceso al sistema de archivos y a los programas instalados en el ordenador, como los comandos de terminal. Además puede acceder directamente a los sistemas gestores de bases de datos.
- Javascript tiene acceso a los objetos del navegador (BOM) y a los objetos de la página o documento HTML (DOM).
Otro detalle destacable es que NodeJS es un lenguaje que se ejecuta en la consola, en principio, por lo que no tiene interfaz gráfica. Por su parte en Javascript del navegador contamos con las interfaces gráficas que podemos crear dentro de la página web, con HTML y CSS. A pesar de esto, existen frameworks como Electron que sí permiten la creación de programas basados en interfaces gráficas, que explotan en en realidad las posiblidades conjuntas de NodeJS y Javascript en el navegador.
Por último es muy importante el sistema de módulos que tenemos disponible en uno y otro entorno de ejecución. En NodeJS se utilizan tradicionalmente los módulos CommonJS que funcionan con la sentencia require
para importar y module.exports
o exports
para exportar. Por su parte en Javascript en el navegador solamente tenemos disponibles nos módulos ES6 Modules (también llamados "ES Modules", que son los que define el estándar ECMAScript) que funcionan con la sentencia import
para importar y con export
para exportar. Hay que señalar que recientemente también es posible usar los ES Modules en NodeJS, aunque esto requiere configuraciones especiales en el módulo y a menudo cambios en la extensión del archivo.
Crea artículos, recursos o comparte información sobre NodeJS
Temas relacionados
Preguntas y respuestas de NodeJS
Se han recibido 5 faqs en NodeJS