Другие, такие как сторонние модули или локальные модули, установленные через NPM, каждый модуль будет обнародовать публичный API. Так что разработчики могут импортировать. нравиться
Кода -копия выглядит следующим образом:
var mod = require ('module_name')
После выполнения этого предложения встроенный модуль или модуль, установленные через NPM, будут загружены внутри узла. Функция «Восстания» возвращает объект, открытый API, может быть функцией, объектом или атрибутом, таким как функция, массив или даже произвольный объект JS.
Вот механизмы нагрузки и кэширования узловых модулей
1) Загрузите встроенный модуль (модуль Core)
2) Загрузите модуль файла (модуль файла)
3) Загрузите модуль каталогов файлов (модуль папки)
4) Загрузите модуль в node_modules
5) Автоматически кэшируя загруженные модули
1. Загрузите встроенный модуль
Встроенный модуль Node составлен в двоичную форму, и имя напрямую используется вместо пути файла при упоминании. Когда сторонний модуль и встроенный модуль имеют одинаковое имя, встроенный модуль переопределяет сторонний модуль с тем же именем. Поэтому, когда вы называете, вы должны быть осторожны, чтобы не иметь того же имени, что и встроенный модуль. Если у вас есть модуль HTTP
Кода -копия выглядит следующим образом:
var http = require ('http')
Возвращенный HTTP-это встроенный модуль, который реализует функциональный узел HTTP.
2. Загрузите файл модуль
Абсолютный путь
Кода -копия выглядит следующим образом:
var mymod = require ('/home/base/my_mod')
или относительный путь
Кода -копия выглядит следующим образом:
var mymod = require ('./ my_mod')
Обратите внимание, что расширение ".js" здесь игнорируется, и следующее - одноранго.
Кода -копия выглядит следующим образом:
var mymod = require ('./ my_mod')
var mymod = require ('./ my_mod.js')
3. Загрузите модуль каталогов файлов
Вы можете напрямую потребовать каталог, предполагая, что есть каталог с именем папки, такой как
Кода -копия выглядит следующим образом:
var mymod = require ('./ folder')
На этом этапе Node будет искать весь каталог папок, Node предполагает, что папка представляет собой пакет и попытается найти пакет файлов определения пакета. Если каталог папок не содержит файла package.json, Node предполагает, что основной файл по умолчанию является index.js, что означает, что index.js будет загружен. Если index.js не существует, то загрузка потерпит неудачу.
Если структура каталогов следующей
package.json определяется следующим образом
Кода -копия выглядит следующим образом:
{
"Имя": "Пакет",
"MAIN": "MODA.JS"
}
В настоящее время требуется ('./ FOLDER') вернет модуль moda.js. Если Package.json не существует, Module Index.js будет возвращен. Если index.js не существует, произойдет исключение нагрузки.
4. Загрузите модуль в node_modules
Если имя модуля не является путем или встроенным модулем, Node попытается искать в папке Node_Modules текущего каталога. Если node_modules в текущем каталоге не найдены, узел будет искать из Node_modules в родительском каталоге, а затем рекурсивно продолжается до корневого каталога.
Не волнуйтесь, команда NPM позволяет нам очень удобно устанавливать, удалять и обновлять каталог node_modules.
5. Автоматически кэшируя загруженные модули
Узел для загруженного модуля кэшируется без необходимости повторного поиска каждый раз. Вот пример
MODA.JS
Кода -копия выглядит следующим образом:
console.log ('модуль Moda начинает загружать ...')
exports = function () {
console.log ('hi')
}
console.log ('Module Moda был загружен')
init.js
Кода -копия выглядит следующим образом:
var mod1 = require ('./ moda')
var mod2 = require ('./ moda')
console.log (mod1 === mod2)
Выполнение командной строки:
Узел init.js
Введите следующее
Можно видеть, что, хотя требуется дважды, moda.js все еще выполняется только один раз. MOD1 и MOD2 одинаковы, то есть оба ссылки указывают на один и тот же объект модуля.