Пояснення об'єкта процесу вузла

processОб'єкт в Node.js є глобальним об'єктом , який можна отримати в будь-якому модулі без необхідності його. У Node.js дуже мало глобальних об’єктів або властивостей, і processце один із них. Це важливий компонент в екосистемі Node.js, оскільки надає різні набори інформації про час роботи програми.

Для дослідження ми використаємо одну з його властивостей, яка називається process.versions. Ця властивість повідомляє нам інформацію про встановлену нами версію Node.js. Він повинен використовуватися з -pпрапором.

$ 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. Але результат цього разу буде більш детальним.

node -p "process.release" # output { name: 'node', lts: 'Carbon', sourceUrl: '//nodejs.org/download/release/v8.11.2/node-v8.11.2.tar.gz', headersUrl: '//nodejs.org/download/release/v8.11.2/node-v8.11.2-headers.tar.gz' }

Це деякі різні команди, які ми можемо використовувати в командному рядку для доступу до інформації, яку інакше не може надати жоден модуль.

Цей processоб'єкт є екземпляром класу EventEmitter. Він містить свої заздалегідь визначені події, наприклад, exitякі можна використовувати, щоб дізнатися, коли програма в Node.js завершила своє виконання.

Запустіть наведену нижче програму, і ви зможете помітити, що в результаті з’являється код стану 0. У Node.js цей код стану означає, що програма успішно запущена.

process.on('exit', code => { setTimeout(() => { console.log('Will not get displayed'); }, 0); console.log('Exited with status code:', code); }); console.log('Execution Completed');

Результат роботи вищезазначеної програми:

Execution Completed Exited with status code: 0

Processтакож надає різні властивості для взаємодії. Деякі з них можна використовувати в програмі Node для забезпечення шлюзу для зв'язку між програмою Node та будь-яким інтерфейсом командного рядка. Це дуже корисно, якщо ви створюєте додаток або утиліту командного рядка за допомогою Node.js

  • process.stdin: читабельний потік
  • process.stdout: потік для запису
  • process.stderr: потік, що підлягає запису, для розпізнавання помилок

За допомогою argvви завжди можете отримати доступ до аргументів, які передаються в командному рядку. argv- це масив, у якому першим елементом є сам Node, а другим елементом - абсолютний шлях до файлу. Починаючи з третього елемента, він може мати скільки завгодно аргументів.

Спробуйте наведену нижче програму, щоб отримати більше розуміння того, як ви можете використовувати ці різні властивості та функції.

process.stdout.write('Hello World!' + '\n'); process.argv.forEach(function(val, index, array) { console.log(index + ': ' + val); });

Якщо запустити наведений вище код за допомогою наведеної нижче команди, ви отримаєте вихідні дані, і перші два елементи argvбудуть надруковані.

$ node test.js # output Hello World! 0: /usr/local/bin/node 1: /Users/amanhimself/Desktop/articles/nodejs-text-tuts/test.js