Базовый функционал
include/require
Порядок поиска файлов при подключении
Описание
- Поиск внутренних модулей nodejs
- LOAD_AS_FILE(X) - Модуль как файл
- LOAD_AS_DIRECTORY(X) - Модуль как директория (обязательно должен содержать index.js или index.json)
- package.json - модуль пакетов в npm
- index.son
- index.js
- LOAD_NODE_MODULES(X, START)
- LOAD_AS_FILE(DIR/X)
- LOAD_AS_DIRECTORY(DIR/X)
- NODE_MODULES_PATHS(START)
- node_models - поднимается вверх по путям (первая найденная директория для модуля будет решением)
- NODE_PATH
Пример
var user = require('./user');
modules
Базовые
- Util
Вызов модуля
Без передачи параметров
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 - родитель
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
- 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