Nodo de aprendizaje uno: Introducción al nodo y módulos principales

Introducción a NodeJs

Node.jsNo es un nuevo lenguaje de programación, ni es un marco JavaScript, es un conjunto de bases V8引擎para JavaScript运行环境soportar la ejecución de código JavaScript.

Antes Node.js, JavaScript solo podía ejecutarse en el navegador. Con Node.js, JavaScript se separa del navegador y se usa directamente en la computadora como otros lenguajes de programación, sin estar restringido por el navegador.

Sobre el motor V8

V8引擎Es una fuente abierta lanzada por Google JavaScript引擎y es el núcleo de Google Chrome.

¿Por qué necesita un motor de JavaScript?

Cuando el código JavaScript que escribimos se entrega directamente al navegador o Nodese ejecuta, la CPU subyacente no lo sabe y no puede ejecutarlo. La CPU solo conoce su propio conjunto de instrucciones, y el conjunto de instrucciones corresponde al código ensamblador. Escribir código ensamblador es un dolor. Y los conjuntos de instrucciones de los diferentes tipos de CPU son diferentes, lo que significa que el código ensamblador debe reescribirse para cada CPU.

JavaScript引擎El código JS se puede compilar en código ensamblador correspondiente a diferentes CPU (Intel, ARM, MIPS, etc.), por lo que no necesitamos leer el manual de instrucciones de cada CPU para escribir el código ensamblador. Por supuesto, JavaScript引擎su trabajo no es solo compilar código, también es responsable de ejecutar código, asignar memoria y recolectar basura.

Documento de referencia: explicación detallada del motor Chrome V8

Módulo central de NodeJs

assert 断言

Si la expresión no cumple con las expectativas, se genera un error, que se utiliza para detectar algunas excepciones.

Buffer 缓冲器

El área de búfer dedicada al almacenamiento de datos binarios se utiliza para el procesamiento relacionado con el flujo de datos binarios, principalmente utilizado en protocolos de red, bases de datos operativas, procesamiento de imágenes, recepción y carga de archivos, etc.

El búfer está disponible globalmente, pero aún así se recomienda referirse a él explícitamente a través de la declaración importo .require

events 事件触发器

Proporciona una propiedad EventEmitter, el núcleo de EventEmitter es la emisión de eventos y el detector de eventos.

cluster 集群

Node se ejecuta en un solo proceso. Para sistemas de 32 bits, puede usar hasta 512 MB de memoria, y para sistemas de 64 bits, puede usar hasta 1 GB de memoria. Para una computadora con múltiples núcleos de CPU, dicha utilización es muy baja. El módulo de clúster puede crear clústeres de procesos de múltiples nodos y realizar la comunicación y la cooperación entre procesos.

fs 文件系统

Este módulo proporciona muchas funciones muy ricas y útiles para acceder e interactuar con el sistema de archivos.

os 操作系统

Este módulo proporciona métodos de utilidad y propiedades relacionadas con el sistema operativo.

path

Este módulo proporciona utilidades para trabajar con rutas de archivos y directorios.

console, error

Consola de depuración y manejo de excepciones.

lanzar error, consola.log, consola.error. Se utilizan varios debugs para la depuración.

process 当前进程

Obtenga información sobre el proceso del nodo actual. es una variable global. Algunos atributos son equivalentes a los atributos os.

child_process 子进程

Tenga en cuenta la diferencia con el proceso. child_process es un proceso secundario abierto por el nodo que ejecuta un comando del sistema. Equivale a system, popen, exec, etc. en otros idiomas. Ejecute directamente algunos scripts de shell y similares

stream 流

Es una interfaz abstracta para procesar datos de transmisión en nodo. Se utiliza principalmente para transmitir archivos grandes, video y audio; generalmente está segmentada.

Por ejemplo, al ver un video en línea, el contenido del video se devuelve al usuario a través de una solicitud HTTP. Hay dos problemas obvios aquí

1. El archivo de video debe leerse completamente antes de devolverlo al usuario, por lo que el tiempo de espera será muy largo
2. Todos los archivos de video se colocan en la memoria al mismo tiempo y la memoria es demasiado.

El método utilizado streampuede leer el archivo de video en la memoria poco a poco y luego devolverlo al usuario poco a poco.

Muchos módulos en el nodo son implementaciones de flujo, como el resultado de retorno de la ejecución de child_process, el flujo de bytes para abrir un archivo para leer, etc.

Supongo que te gusta

Origin blog.csdn.net/Kevin_xq/article/details/129271261
Recomendado
Clasificación