Skip to content

Objetos Globais

Esses objetos estão disponíveis em todos os módulos.

As seguintes variáveis podem parecer globais, mas não são. Elas existem apenas no escopo dos módulos CommonJS:

Os objetos listados aqui são específicos do Node.js. Existem objetos integrados que fazem parte da própria linguagem JavaScript, que também são acessíveis globalmente.

Classe: AbortController

[Histórico]

VersãoMudanças
v15.4.0Não é mais experimental.
v15.0.0, v14.17.0Adicionado em: v15.0.0, v14.17.0

Uma classe de utilidade usada para sinalizar o cancelamento em APIs selecionadas baseadas em Promise. A API é baseada na Web API AbortController.

js
const ac = new AbortController();

ac.signal.addEventListener('abort', () => console.log('Abortado!'),
                           { once: true });

ac.abort();

console.log(ac.signal.aborted);  // Imprime true

abortController.abort([reason])

[Histórico]

VersãoMudanças
v17.2.0, v16.14.0Adicionado o novo argumento opcional reason.
v15.0.0, v14.17.0Adicionado em: v15.0.0, v14.17.0
  • reason <any> Um motivo opcional, recuperável na propriedade reason do AbortSignal.

Aciona o sinal de aborto, fazendo com que o abortController.signal emita o evento 'abort'.

abortController.signal

Adicionado em: v15.0.0, v14.17.0

Classe: AbortSignal

Adicionado em: v15.0.0, v14.17.0

O AbortSignal é usado para notificar os observadores quando o método abortController.abort() é chamado.

Método estático: AbortSignal.abort([reason])

[Histórico]

VersãoMudanças
v17.2.0, v16.14.0Adicionado o novo argumento opcional reason.
v15.12.0, v14.17.0Adicionado em: v15.12.0, v14.17.0

Retorna um novo AbortSignal já abortado.

Método estático: AbortSignal.timeout(delay)

Adicionado em: v17.3.0, v16.14.0

  • delay <number> O número de milissegundos a esperar antes de acionar o AbortSignal.

Retorna um novo AbortSignal que será abortado em delay milissegundos.

Método estático: AbortSignal.any(signals)

Adicionado em: v20.3.0, v18.17.0

  • signals <AbortSignal[]> Os AbortSignals dos quais compor um novo AbortSignal.

Retorna um novo AbortSignal que será abortado se algum dos sinais fornecidos for abortado. Seu abortSignal.reason será definido como aquele que causou o aborto dos signals.

Evento: 'abort'

Adicionado em: v15.0.0, v14.17.0

O evento 'abort' é emitido quando o método abortController.abort() é chamado. O callback é invocado com um único argumento de objeto com uma única propriedade type definida como 'abort':

js
const ac = new AbortController();

// Use a propriedade onabort...
ac.signal.onabort = () => console.log('abortado!');

// Ou a API EventTarget...
ac.signal.addEventListener('abort', (event) => {
  console.log(event.type);  // Imprime 'abort'
}, { once: true });

ac.abort();

O AbortController com o qual o AbortSignal está associado só acionará o evento 'abort' uma vez. Recomendamos que o código verifique se o atributo abortSignal.aborted é false antes de adicionar um ouvinte de evento 'abort'.

Quaisquer listeners de evento anexados ao AbortSignal devem usar a opção { once: true } (ou, se estiver usando as APIs EventEmitter para anexar um listener, use o método once()) para garantir que o listener de evento seja removido assim que o evento 'abort' for tratado. Não fazer isso pode resultar em vazamentos de memória.

abortSignal.aborted

Adicionado em: v15.0.0, v14.17.0

  • Tipo: <boolean> Verdadeiro após o AbortController ter sido abortado.

abortSignal.onabort

Adicionado em: v15.0.0, v14.17.0

Uma função de callback opcional que pode ser definida pelo código do usuário para ser notificada quando a função abortController.abort() for chamada.

abortSignal.reason

Adicionado em: v17.2.0, v16.14.0

Uma razão opcional especificada quando o AbortSignal foi acionado.

js
const ac = new AbortController();
ac.abort(new Error('boom!'));
console.log(ac.signal.reason);  // Error: boom!

abortSignal.throwIfAborted()

Adicionado em: v17.3.0, v16.17.0

Se abortSignal.aborted for true, lança abortSignal.reason.

Classe: Blob

Adicionado em: v18.0.0

Veja <Blob>.

Classe: Buffer

Adicionado em: v0.1.103

Usado para manipular dados binários. Veja a seção de buffer.

Classe: ByteLengthQueuingStrategy

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de ByteLengthQueuingStrategy.

__dirname

Esta variável pode parecer ser global, mas não é. Veja __dirname.

__filename

Esta variável pode parecer ser global, mas não é. Veja __filename.

atob(data)

Adicionado em: v16.0.0

[Estável: 3 - Legado]

Estável: 3 Estabilidade: 3 - Legado. Use Buffer.from(data, 'base64') em vez disso.

Alias global para buffer.atob().

BroadcastChannel

Adicionado em: v18.0.0

Veja <BroadcastChannel>.

btoa(data)

Adicionado em: v16.0.0

[Estável: 3 - Legado]

Estável: 3 Estabilidade: 3 - Legado. Use buf.toString('base64') em vez disso.

Alias global para buffer.btoa().

clearImmediate(immediateObject)

Adicionado em: v0.9.1

clearImmediate é descrito na seção de timers.

clearInterval(intervalObject)

Adicionado em: v0.0.1

clearInterval é descrito na seção de timers.

clearTimeout(timeoutObject)

Adicionado em: v0.0.1

clearTimeout é descrito na seção de timers.

CloseEvent

Adicionado em: v23.0.0

A classe CloseEvent. Veja CloseEvent para mais detalhes.

Uma implementação compatível com o navegador de CloseEvent. Desative esta API com a flag CLI --no-experimental-websocket.

Classe: CompressionStream

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de CompressionStream.

console

Adicionado em: v0.1.100

Usado para imprimir para stdout e stderr. Veja a seção console.

Classe: CountQueuingStrategy

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de CountQueuingStrategy.

Crypto

[Histórico]

VersãoMudanças
v23.0.0Não é mais experimental.
v19.0.0Não está mais atrás da flag CLI --experimental-global-webcrypto.
v17.6.0, v16.15.0Adicionado em: v17.6.0, v16.15.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável.

Uma implementação compatível com navegador de <Crypto>. Este global está disponível apenas se o binário do Node.js foi compilado incluindo suporte para o módulo node:crypto.

crypto

[Histórico]

VersãoMudanças
v23.0.0Não é mais experimental.
v19.0.0Não está mais atrás da flag CLI --experimental-global-webcrypto.
v17.6.0, v16.15.0Adicionado em: v17.6.0, v16.15.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável.

Uma implementação compatível com navegador da Web Crypto API.

CryptoKey

[Histórico]

VersãoMudanças
v23.0.0Não é mais experimental.
v19.0.0Não está mais atrás da flag CLI --experimental-global-webcrypto.
v17.6.0, v16.15.0Adicionado em: v17.6.0, v16.15.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável.

Uma implementação compatível com navegador de <CryptoKey>. Este global está disponível apenas se o binário do Node.js foi compilado incluindo suporte para o módulo node:crypto.

CustomEvent

[Histórico]

VersãoMudanças
v23.0.0Não é mais experimental.
v22.1.0, v20.13.0CustomEvent agora é estável.
v19.0.0Não está mais atrás da flag CLI --experimental-global-customevent.
v18.7.0, v16.17.0Adicionado em: v18.7.0, v16.17.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável

Uma implementação compatível com navegador da CustomEvent Web API.

Classe: DecompressionStream

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de DecompressionStream.

Event

[Histórico]

VersãoAlterações
v15.4.0Não é mais experimental.
v15.0.0Adicionado em: v15.0.0

Uma implementação compatível com o navegador da classe Event. Veja EventTarget e API Event para mais detalhes.

EventSource

Adicionado em: v22.3.0, v20.18.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental. Habilite esta API com a flag de CLI --experimental-eventsource.

Uma implementação compatível com o navegador da classe EventSource.

EventTarget

[Histórico]

VersãoAlterações
v15.4.0Não é mais experimental.
v15.0.0Adicionado em: v15.0.0

Uma implementação compatível com o navegador da classe EventTarget. Veja EventTarget e API Event para mais detalhes.

exports

Esta variável pode parecer global, mas não é. Veja exports.

fetch

[Histórico]

VersãoAlterações
v21.0.0Não é mais experimental.
v18.0.0Não está mais atrás da flag de CLI --experimental-fetch.
v17.5.0, v16.15.0Adicionado em: v17.5.0, v16.15.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável

Uma implementação compatível com o navegador da função fetch().

Classe: File

Adicionado em: v20.0.0

Veja <File>.

Classe FormData

[Histórico]

VersãoAlterações
v21.0.0Não é mais experimental.
v18.0.0Não está mais atrás do sinalizador CLI --experimental-fetch.
v17.6.0, v16.15.0Adicionado em: v17.6.0, v16.15.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável

Uma implementação compatível com o navegador de <FormData>.

global

Adicionado em: v0.1.27

[Estável: 3 - Legado]

Estável: 3 Estabilidade: 3 - Legado. Use globalThis em vez disso.

Nos navegadores, o escopo de nível superior tem sido tradicionalmente o escopo global. Isso significa que var something definirá uma nova variável global, exceto em módulos ECMAScript. No Node.js, isso é diferente. O escopo de nível superior não é o escopo global; var something dentro de um módulo Node.js será local para esse módulo, independentemente de ser um módulo CommonJS ou um módulo ECMAScript.

Classe Headers

[Histórico]

VersãoAlterações
v21.0.0Não é mais experimental.
v18.0.0Não está mais atrás do sinalizador CLI --experimental-fetch.
v17.5.0, v16.15.0Adicionado em: v17.5.0, v16.15.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável

Uma implementação compatível com o navegador de <Headers>.

localStorage

Adicionado em: v22.4.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Desenvolvimento inicial.

Uma implementação compatível com o navegador de localStorage. Os dados são armazenados não criptografados no arquivo especificado pelo sinalizador CLI --localstorage-file. A quantidade máxima de dados que pode ser armazenada é de 10 MB. Qualquer modificação desses dados fora da API Web Storage não é suportada. Ative esta API com o sinalizador CLI --experimental-webstorage. Os dados de localStorage não são armazenados por usuário ou por solicitação quando usados no contexto de um servidor, eles são compartilhados entre todos os usuários e solicitações.

MessageChannel

Adicionado em: v15.0.0

A classe MessageChannel. Consulte MessageChannel para obter mais detalhes.

MessageEvent

Adicionado em: v15.0.0

A classe MessageEvent. Consulte MessageEvent para obter mais detalhes.

MessagePort

Adicionado em: v15.0.0

A classe MessagePort. Consulte MessagePort para obter mais detalhes.

module

Esta variável pode parecer global, mas não é. Consulte module.

Adicionado em: v21.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1.1 - Desenvolvimento ativo. Desative esta API com o sinalizador CLI --no-experimental-global-navigator.

Uma implementação parcial da API Navigator.

Adicionado em: v21.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1.1 - Desenvolvimento ativo. Desative esta API com o sinalizador CLI --no-experimental-global-navigator.

Uma implementação parcial de window.navigator.

Adicionado em: v21.0.0

A propriedade somente leitura navigator.hardwareConcurrency retorna o número de processadores lógicos disponíveis para a instância Node.js atual.

js
console.log(`Este processo está sendo executado em ${navigator.hardwareConcurrency} processadores lógicos`);

Adicionado em: v21.2.0

A propriedade somente leitura navigator.language retorna uma string representando o idioma preferido da instância Node.js. O idioma será determinado pela biblioteca ICU usada pelo Node.js em tempo de execução com base no idioma padrão do sistema operacional.

O valor representa a versão do idioma conforme definido em RFC 5646.

O valor de fallback em builds sem ICU é 'en-US'.

js
console.log(`O idioma preferido da instância Node.js tem a tag '${navigator.language}'`);

Adicionado em: v21.2.0

  • {Array

A propriedade somente leitura navigator.languages retorna um array de strings representando os idiomas preferidos da instância Node.js. Por padrão, navigator.languages contém apenas o valor de navigator.language, que será determinado pela biblioteca ICU usada pelo Node.js em tempo de execução com base no idioma padrão do sistema operacional.

O valor de fallback em compilações sem ICU é ['en-US'].

js
console.log(`Os idiomas preferidos são '${navigator.languages}'`);

Adicionado em: v21.2.0

A propriedade somente leitura navigator.platform retorna uma string identificando a plataforma na qual a instância Node.js está sendo executada.

js
console.log(`Este processo está sendo executado em ${navigator.platform}`);

Adicionado em: v21.1.0

A propriedade somente leitura navigator.userAgent retorna o user agent consistindo no nome do runtime e no número da versão principal.

js
console.log(`O user-agent é ${navigator.userAgent}`); // Imprime "Node.js/21"

PerformanceEntry

Adicionado em: v19.0.0

A classe PerformanceEntry. Veja PerformanceEntry para mais detalhes.

PerformanceMark

Adicionado em: v19.0.0

A classe PerformanceMark. Veja PerformanceMark para mais detalhes.

PerformanceMeasure

Adicionado em: v19.0.0

A classe PerformanceMeasure. Veja PerformanceMeasure para mais detalhes.

PerformanceObserver

Adicionado em: v19.0.0

A classe PerformanceObserver. Veja PerformanceObserver para mais detalhes.

PerformanceObserverEntryList

Adicionado em: v19.0.0

A classe PerformanceObserverEntryList. Veja PerformanceObserverEntryList para mais detalhes.

PerformanceResourceTiming

Adicionado em: v19.0.0

A classe PerformanceResourceTiming. Veja PerformanceResourceTiming para mais detalhes.

performance

Adicionado em: v16.0.0

O objeto perf_hooks.performance.

process

Adicionado em: v0.1.7

O objeto process. Veja a seção process object.

queueMicrotask(callback)

Adicionado em: v11.0.0

O método queueMicrotask() enfileira uma microtarefa para invocar callback. Se callback lançar uma exceção, o evento 'uncaughtException' do process object será emitido.

A fila de microtarefas é gerenciada pelo V8 e pode ser usada de forma semelhante à fila process.nextTick(), que é gerenciada pelo Node.js. A fila process.nextTick() é sempre processada antes da fila de microtarefas em cada turno do loop de eventos do Node.js.

js
// Aqui, `queueMicrotask()` é usado para garantir que o evento 'load' seja sempre
// emitido de forma assíncrona e, portanto, consistente. Usar
// `process.nextTick()` aqui resultaria no evento 'load' sempre sendo emitido
// antes de qualquer outro job de promessa.

DataHandler.prototype.load = async function load(key) {
  const hit = this._cache.get(key);
  if (hit !== undefined) {
    queueMicrotask(() => {
      this.emit('load', hit);
    });
    return;
  }

  const data = await fetchData(key);
  this._cache.set(key, data);
  this.emit('load', data);
};

Classe: ReadableByteStreamController

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de ReadableByteStreamController.

Classe: ReadableStream

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de ReadableStream.

Classe: ReadableStreamBYOBReader

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de ReadableStreamBYOBReader.

Classe: ReadableStreamBYOBRequest

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de ReadableStreamBYOBRequest.

Classe: ReadableStreamDefaultController

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de ReadableStreamDefaultController.

Classe: ReadableStreamDefaultReader

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de ReadableStreamDefaultReader.

require()

Esta variável pode parecer global, mas não é. Consulte require().

Response

[Histórico]

VersãoAlterações
v21.0.0Não é mais experimental.
v18.0.0Não está mais atrás da flag de CLI --experimental-fetch.
v17.5.0, v16.15.0Adicionado em: v17.5.0, v16.15.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável

Uma implementação compatível com o navegador de <Response>.

Request

[Histórico]

VersãoMudanças
v21.0.0Não é mais experimental.
v18.0.0Não está mais atrás da flag --experimental-fetch da CLI.
v17.5.0, v16.15.0Adicionado em: v17.5.0, v16.15.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável

Uma implementação compatível com o navegador de <Request>.

sessionStorage

Adicionado em: v22.4.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1.0 - Desenvolvimento inicial.

Uma implementação compatível com o navegador de sessionStorage. Os dados são armazenados na memória, com uma quota de armazenamento de 10 MB. Os dados do sessionStorage persistem apenas dentro do processo em execução atual e não são compartilhados entre os workers.

setImmediate(callback[, ...args])

Adicionado em: v0.9.1

setImmediate é descrito na seção timers.

setInterval(callback, delay[, ...args])

Adicionado em: v0.0.1

setInterval é descrito na seção timers.

setTimeout(callback, delay[, ...args])

Adicionado em: v0.0.1

setTimeout é descrito na seção timers.

Class: Storage

Adicionado em: v22.4.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1.0 - Desenvolvimento inicial.

Uma implementação compatível com o navegador de Storage. Habilite esta API com a flag da CLI --experimental-webstorage.

structuredClone(value[, options])

Adicionado em: v17.0.0

O método WHATWG structuredClone.

SubtleCrypto

[Histórico]

VersãoMudanças
v19.0.0Não está mais atrás da flag CLI --experimental-global-webcrypto.
v17.6.0, v16.15.0Adicionado em: v17.6.0, v16.15.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável.

Uma implementação compatível com o navegador de <SubtleCrypto>. Este global está disponível apenas se o binário do Node.js foi compilado incluindo suporte para o módulo node:crypto.

DOMException

Adicionado em: v17.0.0

A classe WHATWG DOMException. Veja DOMException para mais detalhes.

TextDecoder

Adicionado em: v11.0.0

A classe WHATWG TextDecoder. Veja a seção TextDecoder.

Classe: TextDecoderStream

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de TextDecoderStream.

TextEncoder

Adicionado em: v11.0.0

A classe WHATWG TextEncoder. Veja a seção TextEncoder.

Classe: TextEncoderStream

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de TextEncoderStream.

Classe: TransformStream

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de TransformStream.

Classe: TransformStreamDefaultController

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de TransformStreamDefaultController.

URL

Adicionado em: v10.0.0

A classe URL da WHATWG. Veja a seção URL.

URLSearchParams

Adicionado em: v10.0.0

A classe URLSearchParams da WHATWG. Veja a seção URLSearchParams.

WebAssembly

Adicionado em: v8.0.0

O objeto que atua como o namespace para toda a funcionalidade relacionada ao WebAssembly da W3C. Consulte a Mozilla Developer Network para uso e compatibilidade.

WebSocket

[Histórico]

VersãoMudanças
v22.4.0Não é mais experimental.
v22.0.0Não está mais atrás do sinalizador CLI --experimental-websocket.
v21.0.0, v20.10.0Adicionado em: v21.0.0, v20.10.0

[Estável: 2 - Estável]

Estável: 2 Estabilidade: 2 - Estável.

Uma implementação compatível com o navegador de WebSocket. Desative esta API com o sinalizador CLI --no-experimental-websocket.

Classe: WritableStream

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de WritableStream.

Classe: WritableStreamDefaultController

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de WritableStreamDefaultController.

Classe: WritableStreamDefaultWriter

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1 - Experimental.

Uma implementação compatível com o navegador de WritableStreamDefaultWriter.