Публикации - Node.js

Ядро Node - Глобальные объекты

Это такие объекты, которые доступны всем Node.js приложениям без подключения каких либо модулей.

Объект Global

Представляет собой глобальное пространство имен. Любая определяемая переменная становится свойством объекта global.

console.log(global);

Объект Process

Методы и свойства объекта process предоставляет информацию о приложении и его среде.

Process.execPath – возвращает путь выполнения для Node-приложения

Process.version – возвращает версию Node

Process.platform – возвращает платформу сервера.

Process.platform - сообщают сколько памяти расходует Node-приложение.

console.log(process.memoryUsage);

Выполнив данный листинг, получим следующее:

Объект Process также служит оболочкой для стандартных потоков ввода-вывода stdin, stdout и stderr. Потоки stdin и stdout являются асинхронными и доступными по чтению и записи. Когда мы что-то пишем в консоли (или в приложении Node), срабатывает поток stdin. Когда консоль отвечает (что-то выводит на экран), срабатывает поток stdout. Поток stderr является синхронным, блокирующим.

С помощью этих потоков мы можем вмешиваться в процесс записи и вывода.

Все эти коммуникационные потоки являются реализацией. С помощью потоков ввода-вывода, можно создать канал передачи данных между потоком чтения и потоком записи. Продемонстрируем это, открыв REPL-сеанс, и введем следующий код:

process.stdin.resume(); // подготовка к вводу с терминала
process.stdin.pipe(process.stdout);

Далее, всё, что мы будем вводить в консоль, будет тут же выводиться на экран.

Рассмотрим еще один пример:

process.stdin.resume(); // по умолчанию поток stdin приостановлен, поэтому сперва нам необходимо его возобновить.
 process.stdin.on(‘data’, function(chunk){
 process.stdout.write(‘data: ’ + chunk);
})

После запуска данного приложения в консоли, изменится формат ввода и вывода данных. Это становится заметным при дальнейшем наборе кода в консоли.

Еще один полезный метод объекта process – nextTick, который используется, когда нужно приостановить функцию в асинхронном режиме.

function async = function(data, callback){
  process.nextTick(function(){
    callback(val)
  });
}

Данный метод позволяет строго задать последовательность выполнения кода. С одной стороны, nextTick гарантирует, что функция выполнится до того, как придут следующие события. С другой стороны, он делает выполнение функции асинхронным.

var http = require(‘http’);
http.createServer(function(req, res){
 process.nextTick(function(){
  req.on(‘readable’, function(){
  });
 });
}).listen(1337)

Вместо метода nextTick можно было бы использовать метод setTimeout с нулевой задержкой, однако метод nextyTick вызывается намного быстрее. Кроме того, данный метод позволяет разбить процесс на этапы для последовательного вызова каждого процесса.

Объект Buffer

Глобальный объект, предоставляющий простое хранилище данных и средства управления этим хранилищем.

Создать новый буфер можно следующим образом:

var buf = new Buffer(string);

Если в буфере хранится строка, можно передать второй необязательный параметр, указывающий на кодировку. Возможны следующие варианты: ascii (Семибитный код), utf8 (юникод-символы с многобайтной кодировкой), usc2 (юникод-символы с двухбайтной кодировкой), base64 (кодировка), hex (кодировка каждого байта ввиде двух шестнадцатиричных чисел).

По умолчанию, используется кодировка utf-8.

Объект Require()

Предназначен для подключения модулей. Require.resolve() – предназначен для определения, какой модуль загружен. Require.cache() – для кэширования подключений.

Объект Console()

Используется для вывода на экран. Пример использования

console.log(‘сообщение’);

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться