Объект global и глобальные переменные

Последнее обновление: 21.11.2023

Node.js предоставляет специальный объект global, который предоставляет доступ к глобальным, то есть доступным из каждого модуля приложения, переменным и функциям. Примерным аналогом данного объекта в javascript для браузера является объект window. Все доступные глобальные объекты можно посмотреть в документации.

Для примера создадим следующий модуль greeting.js:

const currentDate = new Date();
 
global.date = currentDate;
 
module.exports.printMessage = function(){
    const hour = currentDate.getHours();
    if(hour > 16)
        console.log("Добрый вечер,", global.username);
    else if(hour > 10)
        console.log("Добрый день,", username);
    else
        console.log("Доброе утро,", username);
}

Здесь, во-первых, происходит установка глобальной переменной date: global.date = currentDate;

Во-вторых, в модуле получаем глобальную переменную username, которая будет установлена из вне. При этом обратиться к глобальной переменной username мы можем через объект global: global.username, либо просто через имя username, так как переменная глобальная.

Определим следующий файл приложения app.js:

const greeting = require("./greeting");

global.username = "Eugene";

global.console.log(date);
greeting.printMessage();

Здесь устанавливаем глобальную переменную username, которую мы получаем в модуле "greeting.js". И также выводим на консоль глобальную переменную date. Причем все глобальные функции и объекты, например, console, также доступны внутри global, поэтому мы можем написать и global.console.log(), и просто console.log().

Запустим файл app.js:

c:\app> node app.js
2023-11-21T17:32:19.063Z
Добрый вечер, Eugene
c:\app> 

Однако по возможности все таки рекомендуется избегать определения и использования глобальных переменных, и преимущественно ориентироваться на создание переменных, инкапсулированных в рамках отдельных модулей.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850