Otros, como los módulos de terceros o los módulos locales instalados a través de NPM, cada módulo expondrá una API pública. Para que los desarrolladores puedan importar. como
La copia del código es la siguiente:
var mod = require ('módulo_name')
Después de ejecutar esta oración, el módulo o módulo incorporado instalado a través de NPM se cargará dentro del nodo. La función Requerir devuelve un objeto cuya API expuesta puede ser una función, objeto o atributo, como una función, matriz o incluso objeto JS de tipo arbitrario.
Aquí están los mecanismos de carga y almacenamiento en caché de los módulos de nodo
1) Cargue el módulo incorporado (un módulo de núcleo)
2) Cargue el módulo de archivo (un módulo de archivo)
3) Cargue el módulo de directorio de archivos (un módulo de carpeta)
4) Cargue el módulo en Node_Modules
5) Módulos cargados de caché automáticamente
1. Cargue el módulo incorporado
El módulo integrado de Node se compila en forma binaria, y el nombre se usa directamente en lugar de la ruta del archivo cuando se hace referencia. Cuando un módulo de terceros y un módulo incorporado tienen el mismo nombre, el módulo incorporado anulará el módulo de terceros con el mismo nombre. Por lo tanto, al nombrar, debe tener cuidado de no tener el mismo nombre que el módulo incorporado. Si obtienes un módulo HTTP
La copia del código es la siguiente:
var http = require ('http')
El HTTP devuelto es un módulo incorporado que implementa el nodo de función HTTP.
2. Cargue el módulo de archivo
Camino absoluto
La copia del código es la siguiente:
var mymod = require ('/home/base/my_mod')
o camino relativo
La copia del código es la siguiente:
var mymod = require ('./ my_mod')
Tenga en cuenta que la extensión ".js" se ignora aquí, y lo siguiente es par.
La copia del código es la siguiente:
var mymod = require ('./ my_mod')
var mymod = require ('./ my_mod.js')
3. Cargue el módulo de directorio de archivos
Puede necesitar directamente un directorio, suponiendo que haya una carpeta con llamada de directorio, como
La copia del código es la siguiente:
var mymod = require ('./ carpeta')
En este punto, Node buscará todo el directorio de carpetas, el nodo asumirá que la carpeta es un paquete e intentará encontrar el archivo de definición del paquete paquete.json. Si el directorio de carpetas no contiene el archivo Packle.json, el nodo asumirá que el archivo principal predeterminado es index.js, lo que significa que Index.js se cargará. Si Index.js no existe, entonces la carga fallará.
Si la estructura del directorio es la siguiente
paquete.json se define de la siguiente manera
La copia del código es la siguiente:
{
"Nombre": "Pack",
"Main": "Moda.js"
}
En este momento requiere ('./ carpeta') devolverá el módulo moda.js. Si paquete.json no existe, se devolverá el módulo index.js. Si Index.js no existe, se producirá una excepción de carga.
4. Cargue el módulo en Node_Modules
Si el nombre del módulo no es una ruta o un módulo incorporado, el nodo intentará buscar en la carpeta Node_Modules del directorio actual. Si no se encuentran Node_Modules en el directorio actual, el nodo buscará desde Node_Modules en el directorio principal, y luego continúa recursivamente hasta el directorio raíz.
No se preocupe, el comando NPM nos permite instalar, desinstalar y actualizar el directorio Node_Modules muy convenientemente.
5. Módulos cargados de caché automáticamente
El nodo para el módulo cargado se almacena en caché sin tener que volver a buscar cada vez. Aquí hay un ejemplo
moda.js
La copia del código es la siguiente:
console.log ('módulo moda comienza a cargar ...')
exports = function () {
console.log ('hola')
}
console.log ('módulo moda se ha cargado')
init.js
La copia del código es la siguiente:
var mod1 = require ('./ moda')
var mod2 = require ('./ moda')
console.log (mod1 === mod2)
Ejecución de línea de comando:
nodo init.js
Entra de la siguiente manera
Se puede ver que aunque se requiere dos veces, Moda.js todavía se ejecuta solo una vez. MOD1 y MOD2 son los mismos, es decir, ambas referencias apuntan al mismo objeto del módulo.