Содержание

Базовый функционал

include/require

Порядок поиска файлов при подключении

Описание

  1. Поиск внутренних модулей nodejs
  2. LOAD_AS_FILE(X) - Модуль как файл
  3. LOAD_AS_DIRECTORY(X) - Модуль как директория (обязательно должен содержать index.js или index.json)
    1. package.json - модуль пакетов в npm
    2. index.son
    3. index.js
  4. LOAD_NODE_MODULES(X, START)
    1. LOAD_AS_FILE(DIR/X)
    2. LOAD_AS_DIRECTORY(DIR/X)
  5. NODE_MODULES_PATHS(START)
    1. node_models - поднимается вверх по путям (первая найденная директория для модуля будет решением)
    2. NODE_PATH

Пример

var user = require('./user');

modules

Базовые

Вызов модуля

Без передачи параметров

var user = require('user');

С передачей параметров

app.js

var logger = require('logger')(module);
logger('Запуск приложения');

./logger/index.js

module.exports = function(module){
  return function(/*   */){
    var args = [module.filename].concat([].slice.call(arguments));
    console.log.apply(console, args);
  }
}

Служебные поля

export

Экспортирование модуля

app.js

var user = require('./user');
 
var vasya = new user.User('Вася');
 
vasya.hello(vasya);
 
// ...
// Привет, Вася

user.js

function User(name){
  this.name = name;
}
 
User.prototype.hello = function(who){
  console.log('Привет, ' + who.name);
}
 
exports.User = User;

Экспортирования метода модуля

app.js

var User = require('./user');
 
var vasya = new User('Вася');
 
vasya.hello(vasya);
 
// ...
// Привет, Вася

user.js

function User(name){
  this.name = name;
}
 
User.prototype.hello = function(who){
  console.log('Привет, ' + who.name);
}
 
module.exports = User;

проверка на возможность эскпортировать

function run(){}
 
if(module.parent){
  exports.run = run; // Экспортируем функцию run
} else {
  run();
}

Командная строка

Чтение параметров из командной строки и окружения

Базовый функционал

console.log(process.argv);

С использованием модуля optimist

С использованием переменных окружения

console.log(process.env);

NPM