Qué es NodeJS y ventajas que tiene este framework
Dentro de las plataformas de desarrollo de propósito general, NodeJS es una de las opciones más extendidas, ya que nos permite sacar JavaScript fuera del contexto del navegador. NodeJS usa el motor de Javascript de Google Chrome, denominado V8, lo que multiplica su potencial en el desarrollo de operaciones.
Actualmente, se usa mucho NodeJS tanto en el ámbito frontend, para crear una web, como plataforma backend. Multitud de herramientas frontend están realizadas bajo NodeJS, enfocadas en la optimización de aplicaciones web y para ejecutar tareas que nos permitan mejorar los flujos de trabajo en general. Para el desarrollo backend, NodeJS está sobre todo enfocado a la creación de servicios web o APIs REST.
Aunque quizá Python, PHP o Java se aproximen bastante a NodeJS, no podemos decir que sea un lenguaje propiamente dicho, ya que trabaja con JavaScript. Podríamos decir, en cambio, que NodeJS es un framework, un marco de trabajo que nos permite un desarrollo acelerado de aplicaciones, ya que cuenta con muchas utilidades ya listas para usar en una variada gama de casos de uso. Además, cuenta con una gran comunidad que crea y publica paquetes de software como código abierto, adicionales al propio NodeJS, con los que se pueden implementar todavía muchas otras funcionalidades comunes en aplicaciones.
NodeJS desde el servidor
En cuanto al uso de NodeJS como lenguaje del lado del servidor encontramos una gran cantidad de tareas importantes, desde la creación de webs con acceso a base de datos, gestión de contenido, etc. hasta la entrada salida mediante sockets. Quizás el uso más habitual en la actualidad sea la de creación de APIs REST, un modelo de trabajo común en las aplicaciones modernas, ya que nos permite una separación total de las capas de aplicación. Las API REST en general permiten el desarrollo de backend independiente del lado frontend, pudiendo incluso crear varios tipos de frontales implementados sobre el mismo backend, no solo para la web, sino también para desarrollo de apps para dispositivos.
Las características de NodeJS permiten un gran rendimiento en el lado del servidor, pudiendo atender a gran cantidad de usuarios con pocos recursos. La ejecución de código en Javascript es «no bloqueante», lo que permite la ejecución de scripts de manera asíncrona, y estos no bloquean el flujo de la aplicación, liberando el proceso para atender otras solicitudes ante cualquier operación que requiera un tiempo de espera para completarse.
NodeJS ocupa un solo hilo de ejecución en las aplicaciones, por lo que el procesador y la necesidad de memoria del servidor no es muy exigente. En cambio esto hace que la escalabilidad de las aplicaciones deba proyectarse de otra manera en servidores con varios núcleos, creando varios procesos independientes que atienden a diversos tipos de operaciones, o creando réplicas de la aplicación ejecutándose en procesos diferentes.
Hay que mencionar para las personas con menos experiencia que Apache no es imprescindible para trabajar con NodeJS, pues el propio framework es capaz de hacer de servidor web con muy poco código, pero sí nos puede ofrecer diversas ventajas configurado como proxy de las aplicaciones NodeJS. Una de las más obvias es la posibilidad de usar, en el mismo servidor, aplicaciones NodeJS junto con aplicaciones más tradicionales en otros lenguajes, o para servir ficheros estáticos con mayor eficiencia que NodeJS. Pero también nos sirve para implementar un mayor grado de seguridad y diversas utilidades de la gestión del protocolo HTTP que ya Apache gestiona perfectamente.
Conoce qué tiene de bueno NodeJS, así como la gestión de procesos cuando desplegamos una aplicación NodeJS en un Servidor Cloud o cómo instalar NodeJS en un Servidor Cloud Linux en otros de nuestros contenidos.