Post Top Ad

Your Ad Spot

martes, 30 de junio de 2020

¿Qué es NodeJS?

Node.js es la forma de hacer aplicaciones usando JavaScript fuera de un navegador web. En el pasado, siempre pensamos en JavaScript como un lenguaje de juguete simple para alertas tontas y cosas así en los navegadores web. Hoy es mucho, mucho más que eso. Con Nodejs, un conjunto completamente nuevo de características y API viene al lenguaje JavaScript que anteriormente requeriría un lenguaje como Python, Java, PHP o C #. Ahora, es posible manipular el sistema de archivos, crear y eliminar carpetas, consultar bases de datos y crear servidores web: ¡todo en JavaScript! Todo esto ahora es posible gracias a Nodejs.

Chrome V8 JavaScript Runtime

Tanto Nodejs como el JavaScript que se ejecuta en el navegador se ejecutan en el mismo motor. El tiempo de ejecución de JavaScript de Chrome V8 . Es un motor de código abierto que toma código JavaScript y lo compila a un código de nivel de máquina ultra rápido. Debido a que el motor Chrome V8 es tan bueno en esta tarea, se sabe que NodeJs es súper rápido. El motor en sí está escrito en C ++ y es posible extender el motor si es lo suficientemente ambicioso como para escribir algo de C ++.
  • Página de inicio de Google V8
  • Intoduction a v8
  • Código fuente en Github
  • Comprender la compilación del motor V8
  • Dentro del motor V8

Inicio de un proceso de nodo

Para iniciar un nuevo proceso de nodo, todo lo que tiene que hacer es escribir nodo en el símbolo del sistema. Asumimos que ya ha instalado el nodo en su máquina.
C: \ nodo> nodo
>
Esto nos da el nuevo indicador de flecha que nos dice que el terminal ahora está esperando el código de nodo de JavaScript, y no ningún comando de terminal estándar.

Su primera aplicación de nodo

Ahora puede escribir su primera aplicación de Nodo. Escriba lo siguiente en la terminal y presione enter.
> console.log ('¡Hola desde NodeJS!');
Hola desde NodeJS!
indefinido
>
Entonces, ¿qué pasó detrás de escena? Node tomó nuestro código JavaScript, lo compiló en código máquina y luego imprimió el resultado. Ahora, de nuevo, el motor V8 se ejecuta en la máquina local donde lo instalamos, pero también se ejecuta en el navegador web Chrome. Podemos intentar lo mismo en la consola del navegador web de esta manera.
Consola Chrome V8
  • Documentación del proceso de nodo
  • Tutorial de proceso de Node.js
  • El módulo de proceso

Node Console vs Browser Console

Entonces podemos ver que estamos produciendo el mismo resultado cuando ejecutamos nuestro pequeño programa. Bueno, resulta que a pesar de que cada entorno parece tener una consola similar, detrás de escena están proporcionando diferentes herramientas para el desarrollador.

El windowobjeto

En el navegador, el windowes el objeto global que almacena todo a lo que tiene acceso. Todas las variables de JavaScript de una forma u otra son parte del windowobjeto global en el lado del cliente.

El globalobjeto

El entorno Node tiene un concepto similar a la ventana, sin embargo, en el nodo se llama globalSi escribe globalen la línea de comando Nodo, verá mucha información sobre lo globalque almacena el objeto.
objeto global de nodo

Salir de la terminal del nodo

Para salir de la consola del nodo, puede escribir lo siguiente.
> proceso.exit (0);

C: \ nodo>
Ahora, volverá al símbolo del sistema de su máquina y no al proceso de tiempo de ejecución del nodo. También tiene la opción de presionar el control C dos veces así.
>
(Para salir, presione ^ C nuevamente o escriba .exit)
>

C: \ nodo>
Al igual que globalen Node es similar a windowen el navegador, processen Node es similar a documenten el navegador. Si vienes desde un extremo frontal, es probable que esos dos objetos te sean familiares. Ahora, cuando aprenda sobre Node, puede aplicar esos mismos conceptos a globalprocess.
  • Documentación de la consola del nodo
  • Tutorial de la consola de Node.js
  • Cómo usar la sonda de consola

¿Qué hace que NodeJS sea tan genial?

Si visita la página de inicio de Node, verá una oración que dice lo siguiente: "Node.js utiliza un modelo de E / S sin bloqueo controlado por eventos que lo hace ligero y eficiente". Hablemos de eso por un segundo. El nodo utiliza IO sin bloqueo o Entrada Salida. Lo que esto significa es que mientras un usuario solicita un recurso de una aplicación Node, un usuario diferente puede solicitar un recurso completamente diferente sin causar ninguna espera. Eche un vistazo a este diagrama para ver qué queremos decir con bloqueo frente a no bloqueo.
bloqueo vs no bloqueo
En el lado izquierdo, podemos ver cómo funciona una aplicación de bloqueo. Mientras estamos obteniendo datos de la base de datos, que es una operación de E / S, la aplicación no puede hacer nada más. Esto significa que nuestra máquina está desperdiciando ciclos esperando que la base de datos responda y ni siquiera puede hacer algo simple como sumar dos números.
A la derecha, tenemos un escenario sin bloqueo. Cuando la aplicación realiza una llamada para obtener un usuario de la base de datos, no tiene que esperar a que este proceso finalice antes de comenzar otras tareas. De hecho, justo después de que se realiza la primera solicitud, se realiza otra solicitud diferente para buscar un usuario diferente. En el segundo escenario, la aplicación no necesita esperar. La conclusión clave es que, en un enfoque sin bloqueo, la aplicación puede ejecutar más de una operación al mismo tiempo. Esto lleva a un rendimiento más rápido.
NodeJs tiene un solo subproceso o, en otras palabras, una aplicación de nodo se ejecuta en un único subproceso. Esto no es un problema ya que Node no es bloqueante. En un contexto de bloqueo, una aplicación aún puede manejar más de una solicitud, pero requiere más recursos de CPU y RAM para admitir la creación de más y más subprocesos. Esto es lo que hace que Node sea muy eficiente. Utiliza la cantidad arrendada de recursos para la mayor cantidad de rendimiento.
  • Cómo funciona NodeJs Single Threading
  • Comprender el bucle de eventos en NodeJs
  • Descripción general de bloqueo frente a no bloqueo
  • Bloqueo y no bloqueo de llamadas en Nodo

NPM

administrador de paquetes npm
Algo más de lo que deberíamos hablar es otra oración de la página de inicio de NodeJS: "El ecosistema de paquetes de Node.js, npm, es el ecosistema más grande de bibliotecas de código abierto del mundo". Node tiene un administrador de paquetes dedicado llamado NPM. Cuando dicen que es el ecosistema más grande del mundo, no están bromeando. De acuerdo con modulecounts.com, ¡npm muestra más de 600,000 paquetes administrados por el sistema npm! En comparación, podemos ver este gráfico y ver que los otros administradores de paquetes como Maven Central, nuget, packagist, PyPI y rubygems están rezagados.
el paquete npm cuenta
crédito img: http://www.modulecounts.com/

Lo que aprendimos sobre el nodo

  • Node.js es un entorno de tiempo de ejecución para ejecutar código JavaScript.
  • Node es básicamente un programa C ++ que incorpora el motor v8 de Google Chrome, el motor JavaScript más rápido disponible.
  • Los desarrolladores pueden usar Node.js para crear aplicaciones de red rápidas y escalables. Es una excelente opción para crear servicios RESTful.
  • Las aplicaciones Node.js son de un solo subproceso. En otras palabras, un solo hilo se utiliza para servir a todos los clientes.
  • Las aplicaciones en Node.js son asíncronas o sin bloqueo de forma predeterminada. Eso significa que cuando ocurren operaciones de E / S, como acceder al sistema de archivos o la red, el hilo no espera (o bloquea) el resultado de la operación. Se lanza para servir a otros clientes.
  • La arquitectura asincrónica hace que Node.js sea perfecto para construir aplicaciones intensivas de E / S.
  • Node.js no es una buena opción para aplicaciones intensivas de CPU, como un servicio de codificación de video.
  • Los objetos del entorno del navegador, como la ventana o el objeto del documento, no existen en Node.js. En cambio, hay otros objetos que no están disponibles en los navegadores, como objetos para trabajar con el sistema de archivos, la red, el sistema operativo y más.

¿Qué es el resumen de NodeJS?

Así que ahí lo tienes, ahora sabes lo que es NodeJS. Es un tiempo de ejecución de JavaScript que utiliza el motor V8. El motor v8 es un motor JavaScript de código abierto que está escrito en C ++ que toma el código JavaScript y lo compila en código máquina antes de ejecutarlo. V8 se usa dentro de NodeJS, así como en el navegador web Chrome.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas