Лучшее руководство по Node.js модульная система в 2024 году. В этом руководстве вы можете изучить Создайте модуль,Где поставить серверный модуль,

Node.js модульная система

Для того, чтобы файл Node.js могут звонить друг другу, Node.js обеспечивает простую модульную систему.

Модуль является неотъемлемой частью Node.js приложений, файлов и модулей один к одному. Другими словами, Node.js файл представляет собой модуль, этот файл может быть код JavaScript, JSON или скомпилированных расширений C / C ++.

Создайте модуль

В Node.js, создать модуль очень прост, так как мы создаем файл 'main.js', следующим образом:

var hello = require('./hello');
hello.world();

В приведенном выше примере, код требует ( './ привет') представил текущий каталог hello.js файл (./ текущий каталог, node.js по умолчанию суффикс JS).

Node.js обеспечивает экспорт и требуют два объекта, где экспорт являются открытые интерфейсы модуля требуется модуль для приобретения от внешнего интерфейса, а именно модуль экспорта целевого приобретения.

Далее мы приходим, чтобы создать файл hello.js, следующим образом:

exports.world = function() {
  console.log('Hello World');
}

В приведенном выше примере, hello.js экспорта по миру в качестве интерфейсного модуля доступа к объектам, этот модуль в main.js загружен с помощью требует ( './ привет'), то вы можете получить прямой доступ членов hello.js объекта в экспорте функция.

Иногда мы просто хотим, чтобы упаковать модуль объекта, формат выглядит следующим образом:

module.exports = function() {
  // ru.
}

Например:

//hello.js 
function Hello() { 
	var name; 
	this.setName = function(thyName) { 
		name = thyName; 
	}; 
	this.sayHello = function() { 
		console.log('Hello ' + name); 
	}; 
}; 
module.exports = Hello;

Таким образом, вы получаете прямой объект:

//main.js 
var Hello = require('./hello'); 
hello = new Hello(); 
hello.setName('BYVoid'); 
hello.sayHello(); 

Единственное изменение является использование модуля интерфейса module.exports = Hello заменен exports.world = функция () {}. При ссылке на внешний модуль, Hello объект, интерфейс объект должен быть сам по себе выход, а не оригинальные экспорта.


Где поставить серверный модуль

Возможно, вы заметили, что мы использовали в коде модуля. Как это:

var http = require("http");

ru.

http.createServer(ru.);

Node.js поставляется с функцией под названием модуля "HTTP", мы просим его вернуть значение локальной переменной в нашем коде.

Это приводит нас в локальную переменную имеет все публичные методы модуль HTTP предоставляет объект.

Node.js методы требуют стратегия поиска файла выглядит следующим образом:

Поскольку существует четыре модуля класса (первичный модуль и три модуля файла) Node.js, хотя требуется метод чрезвычайно прост, но внутри это очень сложная нагрузка, нагрузка их приоритеты различны. Как показано ниже:

nodejs-требуют

Загруженный из модуля кэш-файла

Несмотря на различные приоритеты модуля собственного модуля и файла, но он не будет иметь приоритет над существующий файл загрузки модуля из модуля кэш-памяти.

Загрузка из родного модуля

Приоритет Native модуль после модуля кэш приоритет файла. требуются методы после разбора имени файла, проверьте приоритет ли модуль в родном списке модулей. В модуле HTTP, например, хотя есть HTTP / http.js / http.node / http.json файл в каталоге, требуют ( "HTTP") не будет загружаться из файла, но загружаются из родного модуля.

Родной модуль также имеет буферную зону, он также предпочтительно загружается из кэша. Если буфер не загружен раньше, а затем вызвать родной модуль загрузки будет загружен и выполнен.

Загрузить из файла

Если файл не существует в модуле кэша, а не собственный модуль, когда Node.js потребует аналитического метода входящих параметров, а также загружать фактический файл из файловой системы, процесс загрузки и компиляции детали упаковки в предыдущем разделе Он был введен, где мы будем подробно описывать процесс, чтобы найти файл модуля, который также имеет некоторые детали стоит знать.

требуется способ передачи принимает следующие параметры:

  • HTTP, фс, путь и т.д., собственный модуль.
  • ./mod или ru/mod, относительный путь к файлу модуля.
  • / Pathtomodule / мод, абсолютный путь модуля файла.
  • мод, неродного модуль файла модуля.
Node.js модульная система
10/30