Node.js — Глобальні обєкти

17

Від автора: глобальні об’єкти Node.js доступні для всіх модулів. Нам не потрібно окремо включати ці об’єкти в додаток, ми можемо використовувати їх безпосередньо. В Node js об’єкти — модулі, функції, рядка і власне об’єкти, нижче ми окремо розглянемо кожен з цих типів.

__filename

__filename-ім’я виконуваного коду. Це абсолютний шлях до цього файлу коду. Для основної програми не обов’язково використовувати те ж ім’я файлу, яке використовується в командному рядку. Значення всередині модуля — це шлях до цього файлу модуля.

Приклад

Створіть файл з ім’ям js main.js з таким кодом:

// Давайте спробуємо вивести значення __filename
console.log( __filename );

Тепер запустіть main.js:

$ node main.js

Виходячи з розташування вашої програми, він виведе основне ім’я файлу наступним чином: /web/com/1427091028_21099/main.js

__dirname

__dirname являє ім’я директорії, в якій розташовується що виконується в даний момент скрипт.

Приклад

Створіть файл з ім’ям js main.js з таким кодом —

// Давайте спробуємо вивести значення __dirname
console.log( __dirname );

Тепер запустіть main.js:

$ node main.js

Виходячи з розташування вашої програми, він виведе поточне ім’я директорії: /web/com/1427091028_21099

setTimeout(cb, ms)

Глобальна функція SetTimeout(cb, ms) використовується, щоб запустити зворотний виклик сd з затримкою як мінімум в мс мілісекунд. Фактична затримка залежить від різних факторів, таких як точність таймера ОС і завантаження системи. Затримка не може перевищувати 24,8 дня.

Ця функція повертає неявне значення, яке є таймер, який можна використовувати для видалення встановленого таймера.

Приклад

Створіть файл з ім’ям js main.js з таким кодом:

function printHello(){
console.log( «Hello, World!»);
}
// Після цього через дві секунди викликається наведена вище функція
setTimeout(printHello, 2000);

Тепер запустіть main.js:

$ node main.js

Ви повинні побачити, що результат виводиться після невеликої затримки.

Hello, World!
clearTimeout(t)

Глобальна функція clearTimeout(t) використовується для скасування таймера, який був раніше створений з допомогою setTimeout(). Тут t — таймер, який повертається функцією setTimeout().

Приклад

Створіть файл з ім’ям js main.js з таким кодом —

function printHello(){
console.log( «Hello, World!»);
}
// Після цього через дві секунди викликається наведена вище функція var t = setTimeout(printHello, 2000);
// Тепер скасовуємо таймер
clearTimeout(t);

Тепер запустіть main.js.

$ node main.js

В результаті нічого не виводиться.

setInterval(cb, ms)

Глобальна функція setInterval(cb, ms) використовується для повторного запуску зворотного виклику cb через як мінімум ms мілісекунд. Фактична затримка залежить від різних факторів, таких як точність таймера ОС і завантаження системи. Таймер не може встановлюватися більше, ніж на 24,8 дня.

Ця функція повертає неявне значення, що представляє таймер, який можна використовувати для очищення таймера, заданого за допомогою функції clearInterval(t).

Приклад

Створіть файл з ім’ям js main.js з таким кодом:

function printHello(){
console.log( «Hello, World!»);
}
// Після цього через дві секунди викликається наведена вище функція
setInterval(printHello, 2000);

Тепер запустіть main.js:

$ node main.js

Вищезазначена програма буде виконувати printHello() через кожні 2 секунди. Із-за обмеження системи ця програма не може бути виконана за допомогою опції «Try it», щоб ви могли перевірити її на своєму комп’ютері локально.

Глобальні об’єкти

У наступній таблиці наведено список інших об’єктів, які часто використовуються в програмах. Більш детальну інформацію ви можете знайти в офіційній документації.

Console — Використовується для виведення інформації в stdout і stderr.

Process — Використовується для отримання інформації про поточний процесі. Надає кілька подій, пов’язаних з процесами.