Prefacio
Si no aprendemos NodeJs, envejeceremos ... cuando llegó la onda HTML5, muchos antepasados comenzaron su viaje NodeJS, y en ese momento todavía estaba trabajando en programas del lado del servidor.
Más tarde, cambié al front-end, y la distancia entre él y el escalón ya era muy grande. Debido a que conocía el lenguaje del lado del servidor y trabajé durante mucho tiempo, solo comencé a aprender NodeJ y avanzar hacia el front-end completo.
Esta vez, el plan para aprender NodeJS es:
① Aprenda el conocimiento básico en 1-2 semanas
② Desarrollo de un proyecto simple en aproximadamente 1 semana
③ Use NodeJS para desarrollar un conjunto de herramientas para la depuración móvil
④ Embalaje relacionado (esto puede estar muy lejos)
Características de NodeJS
① Asíncrono
Los NodeJ se completan de manera asincrónica desde la lectura de archivos hasta las solicitudes de red, y las funciones de devolución de llamada juegan un papel importante. El nodo es el modelo de programa líder
② Event Callback
Las devoluciones de llamada de eventos hacen que el programa sea ligero, pero la especificidad depende del programador. Sin embargo, la función de devolución de llamada es bastante difícil de leer.
③ Un solo roscado
El nodo es un solo hilo. Si es multiproceso, este idioma será más profundo. Es muy molesto hacer algunas preguntas sobre la comunicación en el proceso, pero el hilo no tiene punto muerto u otros problemas.
Pero hay problemas con la relación del rendimiento, porque no se pueden usar múltiples núcleos;
Mecanismo del módulo/CommonJS
Solíamos hacer desarrollo del lado del servidor. Si no tuviéramos un buen código organizacional, sería muy difícil mantener más tarde, entonces, ¿qué MVC y arquitectura de tres capas estarán allí?
Ahora la lógica comercial del front-end se está acercando gradualmente al back-end. En cuanto a las aplicaciones de una sola página, ha excedido la lógica del programa del back-end.
El aumento continuo en las vistas de la página conducirá a un aumento en la cantidad de código JS. Cómo administrar bien nuestro código front-end se ha convertido en un problema, por lo que aparece requeríajs ...
PD: Maldita sea, este período tiene una relación de diez centavos con NodeJs ...
JavaScript no tiene un sistema modular, por lo que CommonJS propuso dar a JS la base para desarrollar aplicaciones a gran escala.
Referencia del módulo
Si queremos hacer referencia a un módulo, como el cálculo matemático relacionado:
var math = request ('Math');
Definición del módulo
Si queremos definir nuestro propio módulo, podemos hacer esto
La copia del código es la siguiente:
exports.add = function () {
suma de retorno;
}
Si esta función se define en matemáticas, se puede usar
math.add ();
ID de módulo
El identificador del módulo es el parámetro que se le exige. Debe ser nombrado por el camello y apunta a una ruta de archivo. Es muy similar a los requisitos aquí.
Implementación del módulo
La implementación del módulo de nodo se divide en dos categorías: una es el módulo de núcleo a nivel de sistema y el otro es el módulo de archivo escrito por los usuarios.
El módulo central se traduce en un archivo binario durante el proceso de compilación. Una vez que se inicia el proceso de nodo, algunos módulos centrales se cargarán directamente en la memoria (ubicación del archivo, compilación y ejecución)
El módulo de archivo debe cargarse dinámicamente, y la velocidad es relativamente lenta.
Sin embargo, una vez cargado, esos archivos se almacenarán en caché y los archivos en caché (archivos compilados) se leerán cuando se importen nuevamente (archivos compilados)
Hablemos un poco más aquí. Cuando usamos bajo subscore, compilaremos HTML para formar una función de plantilla (en realidad es solo una función). De hecho, esto se puede almacenar en caché.
Guardar las funciones compiladas antes de implementar el proyecto y eliminar el archivo de plantilla HTML (no conozco el efecto de optimización)
En el nodo, cada módulo es un objeto:
La copia del código es la siguiente:
módulo de función (id, parent) {
this.id = id;
this.exports = {};
// El padre es una palabra clave, no debe usarse al azar
this.parent = parent;
if (parent && parent.children) {
parent.children.push (esto);
}
this.fileName = null;
this.loaded = false;
this.children = [];
}
La última etapa de introducir el módulo de archivo durante la compilación y la ejecución. Después de localizar el archivo específico, el nodo creará un nuevo objeto de módulo y luego se cargará y compilará de acuerdo con la ruta.
Cada módulo compilado con éxito en caché de su ruta de archivo como un índice en el módulo._cache
Cada archivo del módulo tiene tres variables: requiere, exportaciones y módulo, pero no se definen en el archivo (las variables __filename__ y __Dirname__ también son).
De hecho, durante el proceso de compilación, el nodo envuelve el contenido del cabezal y la cola del archivo JavaScript (equivalente a pasar una función personalizada a la ventana)
La copia del código es la siguiente:
(función (exporta, requerir, módulo, __filename__, __dirname__) {
var math = request ('Math');
exports.area = function (radio) {
devolver '';
};
});
De esta manera, el módulo está aislado y no se afectará entre sí. Es algo similar a la compilación de un bajo ...
Paquete y NPM
Node organiza sus propios módulos centrales, por lo que los módulos de archivos de terceros se pueden escribir y usar de manera ordenada, pero en los módulos de terceros, los módulos aún se han hash en varios lugares.
No se puede hacer referencia directamente entre sí. En la subcontratación de módulos y NPM son un mecanismo para establecer conexiones.
PD: Muchos módulos formarán un paquete. El concepto de este paquete es similar al del paquete Java.
Después de la descompresión de una estructura de paquete, se formarán varios archivos:
① Archivo de descripción de paquete.json
② Directorio binario ejecutable de bin
③ Directorio de código Lib JavaScript
④ Doc documentación (deslumbrante básicamente no existe)
⑤ Demo de prueba
Lo anterior son algunas de las especificaciones del paquete CommonJS, pero podemos aprender un poco (principiantes), y el NPM debe ser competente en él. Con la ayuda de NPM, podemos ser competentes en la instalación de paquetes de administración.
Instalar paquete de dependencia
Instalar paquetes de dependencia es un método común:
NPM Install Express
Después de la ejecución, el directorio node_modules se creará en el directorio actual, y luego el directorio expreso se creará a continuación ...
PS: Express es un marco popular de desarrollo web en NodeJS, ayudándonos a desarrollar rápidamente una aplicación web
Después de completar la instalación, se puede llamar:
La copia del código es la siguiente:
var express = request ('express');
Conclusión
Esta sección simplemente ha terminado, y el proceso de combate real de nuestro proyecto se profundizará gradualmente.