Latest web development tutorials

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() {
  // ...
}

Например:

//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");

...

http.createServer(...);

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

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

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

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

nodejs-требуют

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

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

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

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

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

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

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

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

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