Como o Node.js Carrega Módulos
Deslize para mostrar o menu
Para trabalhar de forma eficaz com módulos no Node.js, é necessário compreender como o Node.js encontra e carrega esses módulos. Esse processo é chamado de resolução de módulos. Quando se utiliza a função require para importar um módulo, o Node.js segue um algoritmo específico para localizar o arquivo ou pacote solicitado. O processo de resolução leva em consideração extensões de arquivos, estrutura de pastas e até mesmo a presença de arquivos especiais como o package.json.
O Node.js verifica primeiro se o módulo solicitado é um módulo nativo, como fs ou http. Caso não seja um módulo nativo, o Node.js trata a string passada para o require como um caminho relativo (iniciando com ./ ou ../), um caminho absoluto ou um nome de módulo. Para caminhos relativos e absolutos, o Node.js tenta resolver o arquivo verificando, na seguinte ordem:
- Se o arquivo exato existe com o nome fornecido;
- Se o arquivo existe com a extensão
.jsadicionada; - Se o arquivo existe com a extensão
.jsonadicionada; - Se o arquivo existe com a extensão
.nodeadicionada.
Se o caminho apontar para um diretório, o Node.js procurará um arquivo package.json dentro desse diretório. Se encontrar, utilizará o campo main para determinar qual arquivo carregar. Se não houver package.json ou campo main, o Node.js buscará um arquivo index.js, index.json ou index.node dentro do diretório.
Se o módulo for requerido pelo nome (e não por caminho), o Node.js irá procurá-lo nas pastas node_modules, começando pelo diretório atual e subindo na árvore de diretórios até chegar à raiz.
app.js
O Node.js faz cache dos módulos após o primeiro carregamento. Isso significa que, se o mesmo módulo for requerido várias vezes, ele será executado apenas uma vez e as chamadas subsequentes retornarão o mesmo objeto em cache. Isso melhora o desempenho e a consistência em toda a aplicação.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo