Это такие объекты, которые доступны всем 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(‘сообщение’);