Node.js — Процессы. Свойства и методы объекта Process

Node.js — Процессы. Свойства и методы объекта Process
5 (100%) 6 votes

Любое приложение созданное на Node.js — это экземпляр объекта Process, который наследует все свойства и методы этого объекта. С помощью этих свойств и методов мы можем получить информацию о приложении и контексте его исполнения. Ниже представлен пример работы некоторых свойств, назначение которых очевидно из названий.

Для использование данного примера, нужно создать .js файл, вводить код примера и запустить файл с терминала (командная строка).

console.log(process.execPath);
console.log(process.version);
console.log(process.platform);
console.log(process.arch);
console.log(process.title);
console.log(process.pid);

Если используете операционную систему Windows, то результат может быть примерно такой:

C:\Program Files\nodejs\node.exe
v8.1.4
win32
x64
cmd — node test.js
3712

Еще две важные и часто используемые свойства объекта Process — это process.moduleLoadList и process.argv. С помощью свойство moduleLoadList мы можем получить информацию о загруженных модулях, а с помощью argv мы можем получить весь список команд из командной строки (терминал / cmd).

process.argv возвращает массив аргументов командной строки. Давайте рассмотрим это на примере. Нам нужно создать .js файл с таким содержанием:

console.log( process.argv );

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



Без дополнительных параметров:

node test.js

Результат:

[ ‘C:\\Program Files\\nodejs\\node.exe’,
‘C:\\Users\\Voskan\\Desktop\\primeri\\test.js’ ]

Результатом будет массив параметров командной строки. Всегда первый элемент массива — это имя / адрес исполняемого правления, то есть адрес интерпретатора Node.js, второй параметр — это файл который исполняется.

А сейчас посмотрим пример с доп. параметрами:

node test.js foo bar kuku hello

Результат:

[ ‘C:\\Program Files\\nodejs\\node.exe’,
‘C:\\Users\\Voskan\\Desktop\\primeri\\test.js’,
‘foo’,
‘bar’,
‘kuku’,
‘hello’ ]

Мы видим, что свойство process.argv возвращает все команды / параметры терминала / консоли в виде массива данных.

Следующая команда / метод — это process.exit(), с помощью которого можно завершить / закрыть процесс. Метод в качестве параметра принимает число / статус код. По умолчанию это 0, который означает, что процесс завершен успешно. Чтобы завершить / выйти с ошибкой, нужно передать 1 — process.exit(1).

Код выхода определяется с помощью событие exit:

process.on("exit", (code) => {
  console.log("Процесс завершен с кодом: " + code);
});

Еще один полезный метод — это process.memoryUsage(), который возвращает информацию о потребление памяти процессом Node в байтах. Метод возвращает информацию в виде объекта.

Пример использование метода process.memoryUsage():

console.log( process.memoryUsage() );

let arr = [];

for(let i = 0; i <= 50000; i++){
    arr[i] = "String " + i;
}

console.log( process.memoryUsage() );

Результат:

{ rss: 21565440,
heapTotal: 6291456,
heapUsed: 4411624,
external: 8252 }

{ rss: 27615232,
heapTotal: 16777216,
heapUsed: 8688976,
external: 8252 }

heapTotal и heapUsed характеризуют потребление памяти JavaScript движка V8.


Об авторе

Занимаюсь программированием уже более 7 лет. Часто использую JavaScript (Node.js) и Python.

Комментарии