freeCodeCamp/guide/russian/nodejs/process/index.md

89 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Process Object
localeTitle: Объект процесса
---
## Объект процесса
Объект `process` в Node.js является глобальным объектом, доступ к которому возможен в любом модуле, не требуя его. В Node.js имеется очень мало глобальных объектов или свойств, и `process` является одним из них. Это важный компонент в экосистеме Node.js, поскольку он предоставляет различные наборы информации о времени выполнения программы. Для изучения мы будем использовать один из его свойств, который называется `process.versions` . Это свойство сообщает нам информацию о версии Node.js, которую мы установили. Он должен использоваться с флагом `-p` .
```shell
$ node -p "process.versions"
# output
{ http_parser: '2.8.0',
node: '8.11.2',
v8: '6.2.414.54',
uv: '1.19.1',
zlib: '1.2.11',
ares: '1.10.1-DEV',
modules: '57',
nghttp2: '1.29.0',
napi: '3',
openssl: '1.0.2o',
icu: '60.1',
unicode: '10.0',
cldr: '32.0',
tz: '2017c' }
```
Еще одно свойство, которое вы можете проверить, это `process.release` то же самое с командой `$ node --version` которую мы использовали, когда мы установили Node.js, но выход на этот раз будет более подробным.
```shell
node -p "process.release"
# output
{ name: 'node',
lts: 'Carbon',
sourceUrl: 'https://nodejs.org/download/release/v8.11.2/node-v8.11.2.tar.gz',
headersUrl: 'https://nodejs.org/download/release/v8.11.2/node-v8.11.2-headers.tar.gz' }
```
Это некоторые из различных команд, которые мы можем использовать в командной строке для доступа к информации, иначе модуль не может предоставить. Этот объект `process` является экземпляром класса EventEmitter, и он содержит свои собственные заранее определенные события, такие как `exit` которые могут быть использованы, чтобы знать, когда программа в Node.js завершила выполнение. Запустите программу ниже, и вы можете заметить, что в результате появляется код состояния `0` . В Node.js этот код состояния означает, что программа успешно выполнена.
```js
process.on('exit', code => {
setTimeout(() => {
console.log('Will not get displayed');
}, 0);
console.log('Exited with status code:', code);
});
console.log('Execution Completed');
```
Результат вышеуказанной программы:
```shell
Execution Completed
Exited with status code: 0
```
`Process` также предоставляет различные свойства для взаимодействия. Некоторые из них могут использоваться в приложении Node для предоставления шлюза для связи между приложением Node и любым интерфейсом командной строки. Это очень полезно, если вы создаете приложение командной строки или утилиту с помощью Node.js
* process.stdin: читаемый поток
* process.stdout: записываемый поток
* process.stderr: wriatable stream для распознавания ошибок
Используя `argv` вы всегда можете получить доступ к аргументам, которые передаются в командной строке. `argv` - это массив, который имеет сам узел как первый элемент и абсолютный путь файла в качестве второго элемента. С третьего элемента он может иметь столько аргументов.
Попробуйте программу ниже, чтобы получить больше информации о том, как вы можете использовать эти различные свойства и функции.
```js
process.stdout.write('Hello World!' + '\n');
process.argv.forEach(function(val, index, array) {
console.log(index + ': ' + val);
});
```
Если вы запустите указанный выше код с помощью следующей команды, вы получите вывод и первые два элемента из `argv` будут напечатаны.
```shell
$ node test.js
# output
Hello World!
0: /usr/local/bin/node
1: /Users/amanhimself/Desktop/articles/nodejs-text-tuts/test.js
```