Aprendizaje de Node.js (67º)

1. Contenido básico

1. Línea de comando

1. Comando CMD

1. dir: enumera todos los archivos en el directorio actual
2. cd 目录名: ingresa al directorio especificado
3. md 目录名: crea una nueva carpeta
4. rd 目录名: elimina una carpeta
5. a.txt: abre directamente el archivo en el directorio actual

2. Directorio

1. .: directorio actual
2. ..: directorio anterior

cd..    //返回上一级目录

3. Variables de entorno (variables en el sistema de ventanas)

Cuando abrimos un archivo o llamamos a un programa en la ventana de la línea de comandos

1. El sistema primero buscará el archivo programa en el directorio actual
2. Si lo encuentra, lo abrirá directamente
3. Si no lo encuentra, lo buscará en la ruta de la variable de entorno.
4. Si se encuentra se ejecutará directamente
5. Si no se encuentra error

Puede agregar la ruta de algunos archivos o programas de uso común a la ruta, para que podamos acceder a estos archivos en cualquier lugar

2. Proceso e hilo

1. Proceso

El proceso es responsable de proporcionar el entorno necesario para el funcionamiento del programa.

El proceso es equivalente al taller en la fábrica.

2. Hilo

Un subproceso es la unidad informática más pequeña en una computadora, y el subproceso es responsable de ejecutar el programa en el proceso.

Los hilos son equivalentes a los trabajadores en una fábrica.

3. Hilo único y multihilo

1. JS de subproceso único
es de subproceso único y la representación de la página web se detiene cuando se ejecuta el código JS.

2. Lenguajes principales de subprocesos múltiples
, como Java

3. Introducción a Node.js

1. Node.js es un entorno de tiempo de ejecución de JavaScript multiplataforma de código abierto que puede ejecutar JavaScript en el lado del servidor. 2.
Node utiliza el motor V8 desarrollado por Google para ejecutar código js y utiliza tecnologías como modelos de E/S asincrónicos , sin bloqueo y controlados por eventos para mejorar el rendimiento y optimizar el volumen de transmisión y la escala de las aplicaciones. los módulos básicos de Node usan escritura JavaScript. Antes de la aparición de Node, JS generalmente se usaba como un lenguaje de programación del lado del cliente, y los programas escritos en JS a menudo se ejecutaban en el navegador del usuario.4. . Otros lenguajes del lado del servidor son difíciles de desarrollar aplicaciones de alta concurrencia, e incluso si se desarrollan, el rendimiento no es satisfactorio 5. Node.js permite escribir aplicaciones del lado del servidor y aplicaciones relacionadas con la red a través de JS y un serie de módulos ./O, red (HTTP, TCP, UDP, DNS, YLS/SSL, etc.), flujo de datos binarios, algoritmo de cifrado, flujo de datos, etc. La forma API del módulo Node es simple, lo que reduce la complejidad de la programación 7. El uso del marco puede acelerar el desarrollo. Los marcos de trabajo comúnmente utilizados incluyen Express.js, Socket.IO y Connect. Los programas de Node.js pueden ejecutarse en servidores como Microsoft Windows, Linux, Unix y Mac OS X. 8. Node.js también puede usar CoffeeScript, TypeScript, lenguaje Dart y otros lenguajes que se pueden compilar en JavaScript.





4. Pasos de acceso a la página web

Una página web debe pasar por los siguientes pasos:

1. El usuario visita la página web y envía una solicitud al servidor web.
2. El servidor divide un subproceso para procesar la solicitud. Si se requiere una operación, un subproceso I/Ose divide automáticamente. 3. Después de que se realiza la operación de E/S. procesado, el servidor devuelve la respuesta de la página web al usuarioI/O

En los pasos anteriores, se pueden optimizar los elementos primero y tercero, lo único que no se puede optimizar es I/Ola solicitud

Por lo tanto, para evitar que múltiples procesos en el servidor causen bloqueos, el lado del servidor solo puede ser un único proceso, para no causar bloqueos.
inserte la descripción de la imagen aquí

E/S (Entrada/Salida): las operaciones de E/S se refieren a las operaciones de lectura y escritura en el disco

5. Historia del Nodo

inserte la descripción de la imagen aquí

6. El propósito del Nodo

1. API de servicio web, como REST
2. Juego multijugador en tiempo real
3. Servicio web back-end, como entre dominios, solicitud del lado del servidor
4. Aplicación basada en web
5. Comunicación multicliente, como instantánea mensajería

7. Ejecutar js

1. Ingrese el directorio donde se encuentra el archivo js en la línea de comando
2. Luego use node 文件名el comando para ejecutar el archivo js

2. Especificación CommonJS

1. Defectos del estándar ECMAScript

1. Sin sistema de módulos
2. Menos biblioteca estándar
3. Sin interfaz estándar
4. Falta de sistema de gestión

2. Especificación CommonJS

1. Propósito: compensar la falta de JavaScript estándar
2. Visión: espero que JS pueda ejecutarse en cualquier lugar
3. Definición: referencia de módulo, definición de módulo, identificación de módulo

3. Modularización

1. Si la escala del diseño del programa alcanza cierto nivel, debe modularizarse.
2. La modularización puede adoptar muchas formas, pero al menos debe proporcionar un mecanismo que pueda dividir el código en varios archivos fuente.
3. En Node, un archivo JS es un módulo
4. En Node, el código JS de cada archivo JS se ejecuta de forma independiente en una función, no en el ámbito global

3.1 Referencias de módulos

En la especificación, require()se definen métodos que asumen la identidad del módulo para introducir un módulo en el entorno de ejecución actual.

Código de ejemplo para referencias de módulos:

let md = require("./module");let md = require("./module.js");

1. Si la ruta usa una ruta relativa, ./debe ../comenzar con o
2. Después de usar para require()importar el módulo, la función devolverá un objeto, que representa el módulo importado

3.2 Identificación del módulo

Cuando importamos require()módulos externos, usamos el identificador del módulo y podemos encontrar el módulo especificado a través del identificador del módulo.

Los módulos se dividen en dos categorías.

1. El módulo principal
1. El módulo proporcionado por el motor de nodo
2. El logotipo del módulo principal es el nombre del módulo

ejemplo

var fs = require("fs");

2. Módulo de archivo
1. El módulo creado por el usuario
2. El identificador del módulo de archivo es la ruta del archivo (ruta absoluta, ruta relativa) La
ruta relativa usa .o ..comienza

var md = require("./02.module");
var math = require("./math");
var fs = require("fs");

//console.log(md);
console.log(math.add(123,456));
//console.log(fs);

3.3 Definición del módulo

1. En el entorno de ejecución, el objeto de exportación se proporciona para exportar los métodos o variables del módulo actual y es la única exportación exportada.
2. También hay un objeto de módulo en el módulo, que representa el propio módulo, y las exportaciones son el atributo del módulo.
3. Un archivo en Node es un módulo.

exports.xxx = function() {
    
    };  //向外部暴露变量和方法
module.exports = {
    
    };

4. Objeto global (global)

Hay un objeto global global en Node, su función es similar a Window en páginas web

1. Las variables creadas globalmente se guardarán como atributos globales
2. Las funciones creadas globalmente se guardarán como métodos globales

Cuando Node ejecuta el código en el módulo, agregará el siguiente código fuera del código:

function (exports, require, module, __filename, __dirname) {
    
    
	//模块中的代码
	console.log(arguments.callee + "");
}

De hecho, el código en el módulo se envuelve y ejecuta en una función, y cuando se ejecuta la función, los siguientes 5 parámetros reales se pasan al mismo tiempo:

1. exports: Se usa para exponer variables o funciones al exterior
2. require: Función, se usa para introducir módulos externos
3. module: Representa el propio módulo actual, y exporta es su atributo
4. __filename: La ruta completa del módulo actual
5. __dirname: Actual La ruta completa a la carpeta donde se encuentra el módulo

5. La diferencia entre exportaciones y module.exports

El primero solo puede exponer variables internas a través exports.xxxdel camino, tales como:

exports.xxx = xxx;

Este último puede exponer variables internas a través module.exports.xxxdel método o mediante asignación directa, como

module.exports.xxx = xxx;
module.exports = {
    
    };

El método de distinción de la asignación: la asignación directa de exportaciones modifica directamente la variable, y la asignación de module.exports modifica el atributo de la variable (se entiende dibujando el diagrama de espacio de memoria del tipo de datos de referencia)

3. Paquete de paquete

1. La especificación nos permite combinar un conjunto de módulos relacionados para formar un conjunto completo de herramientas
2. La especificación del paquete consta de dos partes: la estructura del paquete y el archivo de descripción del paquete

2.1 Estructura del paquete: se utiliza para organizar varios archivos en el paquete
2.2 Archivo de descripción del paquete: describe la información relevante del paquete para lectura y análisis externos

1. Estructura del paquete

El paquete es en realidad un archivo comprimido, que se restaura en un directorio después de la descompresión, que incluye lo siguiente:
1 package.json.: archivo de descripción ( requerido )
2 bin.: directorio, almacenamiento de archivos binarios ejecutables
3 lib.: directorio, almacenamiento de código js
4.: docdirectorio , almacenando Documento
5, test: Directorio, almacenando archivos de prueba de unidad

2. Archivo de descripción del paquete

1. El archivo de descripción del paquete se usa para expresar información no relacionada con el código. Es un JSONarchivo en un formato, ubicado en el directorio raíz del paquete, y es una parte importante del paquete.
2. El paquete.json contiene principalmente : nombre (el nombre del paquete), descripción (Descripción), versión (versión), palabras clave (keywords), mantenedores (principales colaboradores), colaboradores, errores, licencias (protocolo), repositorio (almacén), dependencias (dependencias), devDependencies (dependencias de desarrollo), main (archivo principal) espera

Nota: los comentarios no se pueden escribir en ningún archivo JSON

3, NPM (Administrador de paquetes de nodos)

1. La especificación del paquete CommonJS es una teoría y NPM es una de las prácticas.

2. Para Node, NPM lo ayuda a completar el lanzamiento, la instalación y la dependencia de módulos de terceros. Con NPM, se ha formado un buen ecosistema entre Node y módulos de terceros.

3. comando npm

1. npm -v: Ver la versión de npm
2. npm version: Ver las versiones de todos los módulos
3. npm init -y: Inicializar npm y omitir la configuración manual (elimine -y si se requiere configuración manual)
4. npm search 包名: Buscar paquetes
5. npm install/i 包名: Instalar paquetes
6. npm remove/r 包名: Eliminar paquetes
7. npm install 包名 --save: Instala el paquete y agrégalo a la dependencia
8. npm install: Descarga el paquete del que depende el proyecto actual
9. npm install 包名 -g: Instala el paquete globalmente (generalmente algunas herramientas)

Al instalar el paquete, puede encontrar que no hay una carpeta nueva en la carpeta, probablemente porque falta package.jsonel archivo , puede agregarlo a través del comando de inicialización

4. Introducción y uso de cnpm

Problemas al usar npm en China

Después de instalar npm, cada vez que instalamos un paquete, nuestra computadora tiene que comunicarse con el servidor npm e ir al repositorio de npm para obtener el paquete.
La dirección de almacén predeterminada de npm es:http://registry.npmjs.org

Vea el comando actual de la dirección del almacén de npm: npm config get registry, el aviso es el siguiente:
inserte la descripción de la imagen aquí
Debido a que el servidor remoto de npm está ubicado en el extranjero, a veces es inevitable que el acceso sea demasiado lento o incluso inaccesible.

Para solucionar este problema tenemos las siguientes soluciones

1. Usa el cnpm de Taobao en lugar de npm

Taobao ha configurado un servidor npm doméstico para nosotros. Actualmente "transfiere" todo el contenido de los almacenes npm extranjeros al servidor doméstico cada 10 minutos, para que podamos acceder directamente al servidor doméstico de Taobao. Su dirección es:https://registry.npm.taobao.org

Instrucciones:

El primer método: Instalar cnpm directamente Instale el cnpm proporcionado por Taobao y cambie la dirección del servidor a la dirección nacional de Taobao, comando:

npm install -g cnpm --registry=https://registry.npm.taobao.org

En el futuro, la instalación utilizará directamente cnpm en lugar de npm.

Por ejemplo, el comando npm nativo es: npm install uniq --savey el comando cnpm es: cnpm install uniq --save.

El segundo método: reemplace la dirección del almacén npm con la dirección espejo de Taobao

Orden:

npm config set registry https://registry.npm.taobao.org

Compruebe si el cambio se ha realizado correctamente: npm config get registrycuando se instale en el futuro, el comando npm todavía se usa, pero en realidad se descarga del servidor doméstico de Taobao.

5. Encuentra el proceso del paquete

1. Cuando el nodo use el nombre del módulo para importar un módulo, primero buscará el módulo node_modulesen
2. Si existe, úselo directamente. Si no, vaya node_modulesal para encontrarlo
. 3. Si existe, úselo directamente, si no, vaya node_modulesal para buscar hasta que lo encuentre
4. Si aún falta el directorio raíz del disco, se informará un error

Supongo que te gusta

Origin blog.csdn.net/weixin_55608297/article/details/128139558
Recomendado
Clasificación