Objeto global e Variáveis Globais em Node.js
Node.js fornece um objeto especial chamado global
, que oferece acesso a variáveis e funções globais, ou seja, acessíveis a partir de qualquer módulo da aplicação. Um exemplo análogo a este objeto no JavaScript para navegadores é o objeto window
. Todos os objetos globais disponíveis podem ser consultados na documentação.
Vamos ver um exemplo. Criaremos o seguinte módulo, greeting.js
:
const currentDate = new Date();
global.date = currentDate;
module.exports.printMessage = function () {
const hour = currentDate.getHours();
if (hour >= 18) {
console.log("Boa noite,", global.username);
} else if (hour >= 12) {
console.log("Boa tarde,", username);
} else {
console.log("Bom dia,", username);
}
};
Aqui, primeiramente definimos a variável global date
: global.date = currentDate
.
Em seguida, acessamos a variável global username
, que será definida externamente. Podemos acessar a variável global username
através do objeto global
: global.username
, ou simplesmente pelo nome username
, já que a variável é global.
Agora vamos definir o seguinte arquivo de aplicação, app.js
:
const greeting = require("./greeting");
global.username = "Programício;
global.console.log(date);
greeting.printMessage();
Neste arquivo, definimos a variável global username
, que será utilizada no módulo greeting.js
. Também exibimos no console a variável global date
. Além disso, todas as funções e objetos globais, como console
, também estão disponíveis dentro de global, então podemos escrever tanto global.console.log()
quanto simplesmente console.log()
.
Vamos executar o arquivo app.js
:
c:\app> node app.js 2023-11-21T17:32:19.063Z Boa tarde, Programício
No entanto, sempre que possível, é recomendado evitar a definição e o uso de variáveis globais, preferindo criar variáveis encapsuladas dentro de módulos individuais.