¿Qué es Node.js? Explicación sencilla

23,389
0
Published 2020-04-26
La definición que se encuentra en el sitio oficial en español (nodejs.org/es) es "Node.js® es un entorno de ejecución para JavaScript construido con el motor de JavaScript V8 de Chrome".

¿A qué se refiere con "entorno de ejecución para Javascript"? ¿Qué es el "motor de JavaScript V8 de Chrome"?

Cada navegador tiene un motor de JavaScript que toma nuestro código de JavaScript y lo convierte en código que la computadora puede entender (machine code).

Por ejemplo, Microsoft Edge usa un motor de JavaScript que se llama Chakra, Mozilla Firefox usa SpiderMonkey, y Google Chrome usa v8.

El navegador provee un “entorno de ejecución” para el código de JavaScript.

Hasta el 2009 la única manera de ejecutar código JavaScript era dentro del navegador. En ese año, Ryan Dahl, tomó v8 (el motor de JavaScript que utiliza Google Chrome, que por cierto es open-source, osea de código abierto), y lo puso dentro de un programa de C++ y llamó a ese programa Node.

Similar a un navegador, Node es un entorno de ejecución para JavaScript.

Entonces, en esencia, Node es un programa que incluye el motor de JavaScript v8 además de módulos adicionales que no están disponibles en el navegador. Chrome y Node comparten el mismo motor de JavaScript pero proveen un entorno de ejecución distinto.

Otra característica importante de Node.js es que es orientado a eventos asíncronos, diseñado para construir aplicaciones en red escalables.

Qué es asíncrono (no bloqueo)
Imagina que vas a un restaurante, el mesero viene a tu mesa, toma tu orden y se la dá a la cocina. Luego van a tomar la orden de otra mesa mientras el chef está preparando tu platillo. Así que un mesero puede tomar órdenes de muchas diferentes mesas. No tiene que esperar a que el chef prepare un platillo antes de que tome la orden de otra mesa.

Así es como funcionan las aplicaciones de Node. El mesero es como un hilo de ejecución (thread) que se le asigna encargarse de peticiones. Así que un solo hilo de ejecución puede encargarse de varias peticiones.

En este video también explico qué quiere decir que Node.js sea orientado a eventos asíncronos, diseñado para construir aplicaciones en red escalables. Y respondo la pregunta, ¿cuándo sería conveniente usar Node.js y cuando no deberíamos usarlo?

Artículo sobre este tema en mi sitio Web

programaconleo.com/que-es-node-js/

El monitor externo que uso, puede rotarse y colocarse de manera vertical 😎
amzn.to/2tGTkQ1

All Amazon links are affiliate links (If any).

¡Subscríbete a mi canal y no te pierdas los nuevos videotutoriales!
🦁youtube.com/c/ProgramaConLeo?sub_confirmation=1

#NodeJS #Javascript #GoogleV8

ProgramaConLeo en Twitter
🔗 twitter.com/programaconleo

All Comments (21)