Глобальні змінні

В Node.js існує обʼєкт Global. І щоб створити глобальну змінну потрібно її оголосити як властивість цього обʼєкту.

global.myValue = 5;

Якщо порівнювати з front-end розробкою для браузера, то це аналогія обʼєкта window.

Дізнатися із чого складається наш обʼєкт Global можна законсоливши його.

console.log(global);

В ньому містяться як змінні, так і методи. Наприклад, timeout.

setTimeout(() => {
  console.log("timer");
}, 3000);

Метод require, буде не глобальним, а локальним для кожного окремого модуля.

Локальними для кожного модуля також є:

module.export - об'єкт в якому ми зазначаємо що хочемо експортувати з модуля.

__filename - ім'я файлу скрипта, який виконується.

__dirname - шлях до директорії де міститься наш скрипт.

Створимо в якомусь файлі нашого проєкту такий скрипт і подивимося на результат

console.log(__dirname);
console.log(__filename);

До Global належать такі важливі класи:

Buffer - об'єкт, який використовують для операцій з бінарними даними.

Process - об'єкт процесу, в якому й зберігається більшість даних.

Розглянемо обʼєкт Process. він, наприклад містить дані про саму ноду, її версію, релізи, env тощо.

console.log(process);

Наприклад властивість process.env містить обʼєкт, який зберігає певні дані про систему. Ці дані можуть бути перевизначені і їх конфігурація різниться від операційної системи..

console.log(process.env.LOGNAME);

У цьому обʼєкті, наприклад можемо також створити якийсь параметр (змінну).

process.env.NodeEnv = "test env";

console.log(process.env.NodeEnv);

А от властивість process.argv містить масив аргументів командного рядка. Нульовим елементом буде ім'я виконуваної програми. node, другим ім'я самого виконуваного сценарію і тільки потім самі параметри.

console.log(process.argv);
terminal
node index.js 123 Hello

Це використовують в написанні консольних застосунків.

Для роботи з каталогами використовуються такі функції:

process.cwd() - повертає поточний робочий каталог (current working directory).

console.log(process.cwd());

process.chdir() - виконує перехід в інший каталог.

process.exit() - завершує процес із зазначеним як аргумент кодом: 0 – успішний код, будь-яке відмінне від 0 число, але найчастіше 1 – код помилки. (код після цього рядка не виконається).

process.nextTick(fn) - запланує виконання вказаної функції таким чином, що вона буде виконана після закінчення поточної фази (поточного виконуваного коду), але перед початком наступної фази event loop.

process.nextTick(function() {
  console.log('NextTick callback');
}

Об'єкт Process містить багато властивостей та методів, з якими можна ознайомитись самостійно у довідковій документації до Node.js.

Last updated