Outros como módulos de terceiros ou módulos locais instalados através do NPM, cada módulo exporá uma API pública. Para que os desenvolvedores possam importar. como
A cópia do código é a seguinte:
var mod = requer ('module_name')
Após a execução desta frase, o módulo ou módulo interno instalado através do NPM será carregado dentro do nó. A função requerida retorna um objeto cuja API exposta pode ser uma função, objeto ou atributo, como uma função, matriz ou mesmo objeto JS do tipo arbitrário.
Aqui estão os mecanismos de carregamento e cache dos módulos de nós
1) Carregue o módulo interno (um módulo principal)
2) Carregue o módulo de arquivo (um módulo de arquivo)
3) Carregue o módulo de diretório de arquivos (um módulo de pasta)
4) Carregue o módulo em Node_modules
5) Cache automaticamente módulos carregados
1. Carregue o módulo embutido
O módulo interno do Node é compilado em forma binária e o nome é usado diretamente em vez do caminho do arquivo quando referenciado. Quando um módulo de terceiros e um módulo embutido têm o mesmo nome, o módulo interno substituirá o módulo de terceiros com o mesmo nome. Portanto, ao nomear, você precisa ter cuidado para não ter o mesmo nome que o módulo interno. Se você receber um módulo HTTP
A cópia do código é a seguinte:
var http = requer ('http')
O HTTP retornado é um módulo interno que implementa o nó da função HTTP.
2. Carregue o módulo de arquivo
Caminho absoluto
A cópia do código é a seguinte:
var myMod = requer ('/home/base/my_mod')
ou caminho relativo
A cópia do código é a seguinte:
var myMod = requer ('./ my_mod')
Observe que a extensão ".js" é ignorada aqui, e o seguinte é
A cópia do código é a seguinte:
var myMod = requer ('./ my_mod')
var myMod = requer ('./ my_mod.js')
3. Carregue o módulo de diretório de arquivos
Você pode exigir diretamente um diretório, assumindo que existe um diretório nomeado pasta, como
A cópia do código é a seguinte:
var myMod = requer ('./ Pasta')
Nesse ponto, o Node pesquisará o diretório inteiro da pasta, o nó assumirá que a pasta é um pacote e tentará encontrar o pacote de arquivos de definição do pacote.json. Se o diretório da pasta não conter o arquivo package.json, o nó assumirá que o arquivo principal padrão é index.js, o que significa que o index.js será carregado. Se o index.js não existir, o carregamento falhará.
Se a estrutura do diretório for a seguinte
package.json é definido da seguinte forma
A cópia do código é a seguinte:
{
"Nome": "pack",
"Main": "moda.js"
}
Neste momento, o requer ('./ Pasta') retornará o módulo moda.js. Se o package.json não existir, o módulo index.js será retornado. Se o index.js não existir, ocorrerá uma exceção de carga.
4. Carregue o módulo em node_modules
Se o nome do módulo não for um caminho ou um módulo interno, o nó tentará pesquisar na pasta Node_modules do diretório atual. Se os node_modules no diretório atual não forem encontrados, o nó pesquisará nos node_modules no diretório pai e, em seguida, continuará recursivamente até o diretório raiz.
Não se preocupe, o comando npm nos permite instalar, desinstalar e atualizar o diretório Node_modules de maneira muito conveniente.
5. Módulos carregados automaticamente de cache
O nó para o módulo carregado é armazenado em cache sem precisar pesquisar todas as vezes. Aqui está um exemplo
moda.js
A cópia do código é a seguinte:
Console.log ('Module Moda começa a carregar ...')
exports = function () {
console.log ('oi')
}
Console.log ('Module Moda foi carregado')
init.js
A cópia do código é a seguinte:
var mod1 = requer ('./ moda')
var mod2 = requer ('./ moda')
console.log (mod1 === mod2)
Execução da linha de comando:
nó init.js
Digite o seguinte
Pode -se observar que, embora exigido duas vezes, o Moda.js ainda é executado apenas uma vez. MOD1 e MOD2 são os mesmos, ou seja, ambas as referências apontam para o mesmo objeto de módulo.