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

Описание

  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);
  }
}
  • id
  • exports
  • parent - родитель

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

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);
  • npm install optimist
console.log(process.env);

NPM

  • npm init - Создание модуля
  • npm adduser/addu user@host.com - Добавление пользователя для публикации модуля
  • npm publish/pu - Пупликация модуля
  • npm unpublish/unpu - Удаление публикации модуля
  • npm search/s
  • npm install/i module_name
  • npm remove/r module_name