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 e que também são acessíveis globalmente.

Classe: AbortController

[Histórico]

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

Uma classe utilitária 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ãoAlterações
v17.2.0, v16.14.0Adicionado o novo argumento reason opcional.
v15.0.0, v14.17.0Adicionado em: v15.0.0, v14.17.0
  • reason <any> Uma reason opcional, recuperável na propriedade reason do AbortSignal.

Dispara 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([motivo])

[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 para 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 para qual dos signals fez com que ele fosse abortado.

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ó irá 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'.

Qualquer ouvinte de evento anexado ao AbortSignal deve usar a opção { once: true } (ou, se estiver usando as APIs EventEmitter para anexar um ouvinte, use o método once()) para garantir que o ouvinte de evento seja removido assim que o evento 'abort' for tratado. A falha em 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 retorno de chamada opcional que pode ser definida pelo código do usuário para ser notificada quando a função abortController.abort() tiver sido 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

Consulte <Blob>.

Classe: Buffer

Adicionado em: v0.1.103

Usado para manipular dados binários. Consulte 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 global, mas não é. Consulte __dirname.

__filename

Esta variável pode parecer global, mas não é. Consulte __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

Ver <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 timers.

clearInterval(intervalObject)

Adicionado em: v0.0.1

clearInterval é descrito na seção timers.

clearTimeout(timeoutObject)

Adicionado em: v0.0.1

clearTimeout é descrito na seção timers.

CloseEvent

Adicionado em: v23.0.0

A classe CloseEvent. Consulte CloseEvent para obter mais detalhes.

Uma implementação compatível com navegador de CloseEvent. Desative esta API com o sinalizador 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 navegador de CompressionStream.

console

Adicionado em: v0.1.100

Usado para imprimir em stdout e stderr. Consulte 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 navegador de CountQueuingStrategy.

Crypto

[Histórico]

VersãoMudanças
v23.0.0Não é mais experimental.
v19.0.0Não está mais atrás do sinalizador 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 <Crypto>. Esta variável global está disponível apenas se o binário do Node.js foi compilado com 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 do sinalizador 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 da Web Crypto API.

CryptoKey

[Histórico]

VersãoMudanças
v23.0.0Não é mais experimental.
v19.0.0Não está mais atrás do sinalizador 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 <CryptoKey>. Esta variável global está disponível apenas se o binário do Node.js foi compilado com 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 do sinalizador 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 o navegador da Web API CustomEvent.

Classe: DecompressionStream

Adicionado em: v18.0.0

[Estável: 1 - Experimental]

Estável: 1 Estável: 1 - Experimental.

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

Event

[Histórico]

VersãoMudanças
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 Estável: 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ãoMudanças
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 ser global, mas não é. Veja exports.

fetch

[Histórico]

VersãoMudanças
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 Estável: 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ãoMudanças
v21.0.0Não é mais experimental.
v18.0.0Não está mais atrás da flag 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 dentro de 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ãoMudanças
v21.0.0Não é mais experimental.
v18.0.0Não está mais atrás da flag 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.0 - Desenvolvimento inicial.

Uma implementação compatível com o navegador de localStorage. Os dados são armazenados sem criptografia no arquivo especificado pela flag 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. Habilite esta API com a flag CLI --experimental-webstorage. Os dados do localStorage não são armazenados por usuário ou por solicitação quando usados no contexto de um servidor, eles são compartilhados por todos os usuários e solicitações.

MessageChannel

Adicionado em: v15.0.0

A classe MessageChannel. Veja MessageChannel para mais detalhes.

MessageEvent

Adicionado em: v15.0.0

A classe MessageEvent. Veja MessageEvent para mais detalhes.

MessagePort

Adicionado em: v15.0.0

A classe MessagePort. Veja MessagePort para mais detalhes.

module

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

Adicionado em: v21.0.0

[Estável: 1 - Experimental]

Estável: 1 Estabilidade: 1.1 - Desenvolvimento ativo. Desabilite esta API com a flag 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. Desabilite esta API com a flag 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 atual do Node.js.

js
console.log(`Este processo está rodando 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 do 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 está representando 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 do 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 builds 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 tempo de execução 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. Consulte PerformanceEntry para mais detalhes.

PerformanceMark

Adicionado em: v19.0.0

A classe PerformanceMark. Consulte PerformanceMark para mais detalhes.

PerformanceMeasure

Adicionado em: v19.0.0

A classe PerformanceMeasure. Consulte PerformanceMeasure para mais detalhes.

PerformanceObserver

Adicionado em: v19.0.0

A classe PerformanceObserver. Consulte PerformanceObserver para mais detalhes.

PerformanceObserverEntryList

Adicionado em: v19.0.0

A classe PerformanceObserverEntryList. Consulte PerformanceObserverEntryList para mais detalhes.

PerformanceResourceTiming

Adicionado em: v19.0.0

A classe PerformanceResourceTiming. Consulte PerformanceResourceTiming para mais detalhes.

performance

Adicionado em: v16.0.0

O objeto perf_hooks.performance.

process

Adicionado em: v0.1.7

O objeto process. Consulte 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 objeto process 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 na emissão do evento 'load' sempre
// antes de quaisquer outros trabalhos de promise.

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)
}

Class: 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ãoMudanças
v21.0.0Não é mais experimental.
v18.0.0Não está mais atrás da flag 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 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 navegadores 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 navegadores de sessionStorage. Os dados são armazenados na memória, com uma cota de armazenamento de 10 MB. Os dados de 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.

Classe: Storage

Adicionado em: v22.4.0

[Estável: 1 - Experimental]

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

Uma implementação compatível com navegadores de Storage. Habilite esta API com a flag 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 com suporte para o módulo node:crypto.

DOMException

Adicionado em: v17.0.0

A classe DOMException da WHATWG. Veja DOMException para mais detalhes.

TextDecoder

Adicionado em: v11.0.0

A classe TextDecoder da WHATWG. 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 TextEncoder da WHATWG. 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 WHATWG. Veja a seção URL.

URLSearchParams

Adicionado em: v10.0.0

A classe URLSearchParams 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 W3C WebAssembly. Veja 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.