in

servidor web: ¿podemos decir que node.js es un servidor web?

apple touch icon@2

¡Cómo siento tu dolor!

Como muchos, me resultó difícil llegar a la esencia de Node.js porque la mayoría de las personas solo escriben / hablan sobre la parte de Node que les resulta útil, y la parte que les parece interesante suele ser un beneficio secundario de Node en lugar de su principal. objetivo. Debo decir que creo que es una locura que la gente diga que Node es solo un tiempo de ejecución de JavaScript. El uso de JavaScript por parte del nodo, y su selección del tiempo de ejecución V8, son simplemente medios para un fin, las mejores herramientas para el problema que los desarrolladores de Node querían resolver.

El propósito principal de Node era hacer que la administración de eventos de usuario en una aplicación web sea más eficiente. Entonces Node es abrumadoramente utilizado en el back-end de una aplicación web. La gestión de eventos exige que algo esté escuchando en la máquina del servidor para estos eventos de usuario. Por lo tanto, se debe configurar un servidor http para enrutar cada evento a su script de controlador apropiado. Node proporciona un marco para configurar rápidamente un servidor para escuchar en un puerto dedicado las solicitudes de los usuarios. El nodo usa JavaScript para el manejo de eventos porque JavaScript tiene funciones de devolución de llamada: esto permite suspender una tarea hasta que se devuelva el resultado de una tarea dependiente. No muchos otros idiomas tienen esta función y los que la tienen pueden no tener un intérprete tan eficiente como el motor de ejecución V8 de Google. La mayoría de los desarrolladores web conocen JavaScript, por lo que no hay aprendizaje de idiomas adicional con Node. Además, tiene funciones de devolución de llamada permite poner todas las tareas del usuario en un solo hilo sin tener que aplicar un bloqueo explícito a las tareas que exigen acceso a la base de datos o al sistema de archivos. Y esto es lo que conduce a la eficiencia de ejecución superior de Node bajo un uso concurrente intensivo, el propósito principal de su desarrollo.

Para ayudar a los usuarios de Node a escribir rápidamente el código de back-end, los desarrolladores de Node también organizaron una biblioteca JS incorporada para tareas rutinarias (por ejemplo, asuntos relacionados con solicitudes HTTP, codificación de cadenas, secuencias, etc.) y el repositorio de NPM (Node Package Manager). : este es un conjunto de paquetes de scripts de código abierto mantenido por el usuario para varias funciones estándar y personalizadas. Todos los proyectos de Node permiten la importación de paquetes de NPM en un proyecto a través de los npm install mando.

Las solicitudes de usuario manejadas a través de Node serán cosas necesarias para la aplicación web como autenticación, consulta de base de datos, administración de contenido (Strapi CMS), etc. Todo esto se enviará al puerto de Node. (Cuando el análisis de los datos obtenidos de una base de datos requiere mucho tiempo de CPU, es mejor colocar este tipo de proceso en un hilo separado para que no ralentice las solicitudes de usuario más simples). Otros tipos de solicitud de usuario, por ejemplo, para cargar otra página web , descargar CSS / JS / archivos de imagen, etc., continuará siendo enviado por el navegador a los puertos predeterminados en la máquina del servidor donde el programa del servidor web (Apache, NGinx, etc.) los manejará.

Entonces, en la práctica, Node es principalmente un marco para la creación rápida de servidores y el manejo de eventos, pero uno que reemplaza solo algunos de las funciones del programa del servidor web.

Otros usos no backend de Node simplemente explotan una u otra de sus características, por ejemplo, el motor V8. Por ejemplo, las herramientas de compilación de frontend Grunt y Gulp usan Node.js para procesar un script de compilación que se puede codificar para convertir SASS a CSS, minimizar archivos CSS / JS, optimizar el tamaño / carga de la imagen, etc. Pero este tipo de trabajo es realmente solo un subproducto de Node, no su uso principal, que es para hacer procesos de backend eficientes para aplicaciones web.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

La unidad fundamental de la vida

gfg 200x200 min

Tipos de CSS (hoja de estilo en cascada)