Глобальные объекты
Стабильность: 2 — Стабильный
Эти объекты доступны во всех модулях.
Следующие переменные могут выглядеть глобальными, но таковыми не являются. Они существуют только в области видимости модулей CommonJS:
Перечисленные здесь объекты относятся к Node.js. В языке JavaScript также есть встроенные объекты, доступные глобально.
__dirname
Эта переменная может выглядеть глобальной, но таковой не является. См. __dirname.
__filename
Эта переменная может выглядеть глобальной, но таковой не является. См. __filename.
Класс: AbortController
Вспомогательный класс, используемый для отправки сигнала отмены в некоторых API на основе Promise. API основан на веб-API <AbortController>.
const ac = new AbortController();
ac.signal.addEventListener('abort', () => console.log('Aborted!'),
{ once: true });
ac.abort();
console.log(ac.signal.aborted); // Prints true
jscopy
abortController.abort([reason])
-
reason<any>Необязательная причина, доступная через свойствоreasonобъектаAbortSignal.
Активирует сигнал отмены, в результате чего abortController.signal отправляет событие 'abort'.
abortController.signal
- Тип:
<AbortSignal>
Класс: AbortSignal
- Расширяет:
<EventTarget>
Объект AbortSignal используется для оповещения наблюдателей о вызове метода abortController.abort().
Статический метод: AbortSignal.abort([reason])
-
reason<any> - Возвращает:
<AbortSignal>
Возвращает новый уже отменённый объект AbortSignal.
Статический метод: AbortSignal.timeout(delay)
-
delay<number>Количество миллисекунд ожидания перед активацией AbortSignal.
Возвращает новый объект AbortSignal, который будет отменён через delay миллисекунд.
Статический метод: AbortSignal.any(signals)
-
signals<AbortSignal[]>ОбъектыAbortSignal, из которых нужно составить новый объектAbortSignal.
Возвращает новый объект AbortSignal, который будет отменён, если будет отменён любой из предоставленных сигналов. Его свойство abortSignal.reason будет установлено в значение того объекта signals, который вызвал отмену.
Событие: 'abort'
Событие 'abort' отправляется при вызове метода abortController.abort(). Функция обратного вызова вызывается с одним аргументом-объектом, у которого свойство type имеет значение 'abort':
const ac = new AbortController();
// Use either the onabort property...
ac.signal.onabort = () => console.log('aborted!');
// Or the EventTarget API...
ac.signal.addEventListener('abort', (event) => {
console.log(event.type); // Prints 'abort'
}, { once: true });
ac.abort();
jscopy
Объект AbortSignal, с которым связан AbortController, отправляет событие 'abort' только один раз. Рекомендуется проверять, что атрибут abortSignal.aborted имеет значение false, прежде чем добавлять обработчик события 'abort'.
Для всех обработчиков событий, добавленных к AbortSignal, следует использовать параметр { once: true } (или, если для добавления обработчика используются API EventEmitter, метод once()), чтобы обработчик события удалялся сразу после обработки события 'abort'. В противном случае возможны утечки памяти.
abortSignal.aborted
- Тип:
<boolean>
Имеет значение true после отмены объекта AbortController.
abortSignal.onabort
- Тип:
<Function>
Необязательная функция обратного вызова, которую пользовательский код может задать для получения уведомления о вызове функции abortController.abort().
abortSignal.reason
- Тип:
<any>
Необязательная причина, указанная при активации объекта AbortSignal.
const ac = new AbortController();
ac.abort(new Error('boom!'));
console.log(ac.signal.reason); // Error: boom!
jscopy
abortSignal.throwIfAborted()
Если abortSignal.aborted имеет значение true, выбрасывает abortSignal.reason.
atob(data)
Стабильность: 3 — Устаревший API. Вместо него используйте Buffer.from(data, 'base64').
Глобальный псевдоним для buffer.atob().
Доступна автоматизированная миграция (исходный код):
npx codemod@latest @nodejs/buffer-atob-btoa bashcopy
Класс: Blob
См. <Blob>.
Класс: BroadcastChannel
См. <BroadcastChannel>.
btoa(data)
Стабильность: 3 — Устаревший API. Вместо него используйте buf.toString('base64').
Глобальный псевдоним для buffer.btoa().
Доступна автоматизированная миграция (исходный код):
npx codemod@latest @nodejs/buffer-atob-btoa bashcopy
Класс: Buffer
- Тип:
<Function>
Используется для обработки двоичных данных. См. раздел о буферах.
Класс: ByteLengthQueuingStrategy
Совместимая с браузерами реализация ByteLengthQueuingStrategy.
clearImmediate(immediateObject)
Описание clearImmediate приведено в разделе таймеров.
clearInterval(intervalObject)
Описание clearInterval приведено в разделе таймеров.
clearTimeout(timeoutObject)
Описание clearTimeout приведено в разделе таймеров.
Класс: CloseEvent
Совместимая с браузерами реализация <CloseEvent>. Отключить этот API можно с помощью флага командной строки --no-experimental-websocket.
Класс: CompressionStream
Совместимая с браузерами реализация CompressionStream.
console
- Тип:
<Object>
Используется для вывода данных в stdout и stderr. См. раздел console.
Класс: CountQueuingStrategy
Совместимая с браузерами реализация CountQueuingStrategy.
Класс: Crypto
Совместимая с браузерами реализация <Crypto>. Этот глобальный объект доступен только в том случае, если бинарный файл Node.js был собран с поддержкой модуля node:crypto.
crypto
Совместимая с браузерами реализация Web Crypto API.
Класс: CryptoKey
Совместимая с браузерами реализация <CryptoKey>. Этот глобальный объект доступен только в том случае, если бинарный файл Node.js был собран с поддержкой модуля node:crypto.
Класс: CustomEvent
Совместимая с браузерами реализация <CustomEvent>.
Класс: DecompressionStream
Совместимая с браузерами реализация DecompressionStream.
Класс: DOMException
Класс WHATWG <DOMException>.
ErrorEvent
Совместимая с браузерами реализация <ErrorEvent>.
Класс: Event
Совместимая с браузерами реализация класса Event. Подробнее см. в разделе API EventTarget и Event.
Класс: EventSource
Стабильность: 1 — Экспериментальный. Включите этот API с помощью флага командной строки --experimental-eventsource.
Совместимая с браузерами реализация <EventSource>.
Класс: EventTarget
Совместимая с браузерами реализация класса EventTarget. Подробнее см. в разделе API EventTarget и Event.
exports
Эта переменная может выглядеть глобальной, но таковой не является. См. exports.
fetch
Совместимая с браузерами реализация функции fetch().
const res = await fetch('https://nodejs.org/api/documentation.json');
if (res.ok) {
const data = await res.json();
console.log(data);
}
mjscopy
Реализация основана на undici — HTTP/1.1-клиенте, написанном с нуля для Node.js. Узнать, какая версия undici включена в процесс Node.js, можно по свойству process.versions.undici.
Пользовательский диспетчер
Можно использовать пользовательский диспетчер для отправки запросов, передав его в объект параметров fetch. Диспетчер должен быть совместим с классом Dispatcher из undici.
fetch(url, { dispatcher: new MyAgent() });
jscopy
В Node.js можно изменить глобальный диспетчер, установив undici и вызвав метод setGlobalDispatcher(). Вызов этого метода повлияет как на undici, так и на Node.js.
import { setGlobalDispatcher } from 'undici';
setGlobalDispatcher(new MyAgent());
mjscopyСвязанные классы
Следующие глобальные объекты доступны для использования с fetch:
Класс: File
См. <File>.
Класс: FormData
Совместимая с браузерами реализация <FormData>.
global
Стабильность: 3 — Устаревший API. Вместо него используйте globalThis.
- Тип:
<Object>Глобальный объект пространства имён.
В браузерах верхнеуровневая область видимости традиционно является глобальной. Это означает, что var something объявляет новую глобальную переменную, за исключением модулей ECMAScript. В Node.js это работает иначе. Верхнеуровневая область видимости не является глобальной; var something внутри модуля Node.js будет локальной для этого модуля, независимо от того, является ли он модулем CommonJS или модулем ECMAScript.
Класс: Headers
Совместимая с браузерами реализация <Headers>.
localStorage
Стабильность: 1.2 — Кандидат на выпуск. Отключить этот API можно с помощью --no-experimental-webstorage.
Совместимая с браузерами реализация localStorage. Данные хранятся в незашифрованном виде в файле, указанном флагом командной строки --localstorage-file. Максимальный объём хранимых данных составляет 10 МБ. Изменение этих данных вне API Web Storage не поддерживается. При использовании в контексте сервера данные localStorage не хранятся отдельно для каждого пользователя или запроса, а являются общими для всех пользователей и запросов.
Класс: MessageChannel
Класс MessageChannel. Подробнее см. MessageChannel.
Класс: MessageEvent
Совместимая с браузерами реализация <MessageEvent>.
Класс: MessagePort
Класс MessagePort. Подробнее см. MessagePort.
module
Эта переменная может выглядеть глобальной, но таковой не является. См. module.
Класс: Navigator
Стабильность: 1.1 — Активная разработка. Отключить этот API можно с помощью флага командной строки --no-experimental-global-navigator.
Частичная реализация API Navigator.
navigator
Стабильность: 1.1 — Активная разработка. Отключить этот API можно с помощью флага командной строки --no-experimental-global-navigator.
Частичная реализация window.navigator.
navigator.hardwareConcurrency
- Тип:
<number>
Свойство navigator.hardwareConcurrency, доступное только для чтения, возвращает количество логических процессоров, доступных текущему экземпляру Node.js.
console.log(`This process is running on ${navigator.hardwareConcurrency} logical processors`);
jscopy
navigator.language
- Тип:
<string>
Свойство navigator.language, доступное только для чтения, возвращает строку, представляющую предпочитаемый язык экземпляра Node.js. Язык определяется во время выполнения библиотекой ICU, используемой Node.js, на основе языка операционной системы по умолчанию.
Значение представляет версию языка, определённую в RFC 5646.
Резервное значение в сборках без ICU — 'en-US'.
console.log(`The preferred language of the Node.js instance has the tag '${navigator.language}'`);
jscopy
navigator.languages
- Тип:
<string[]>
Свойство navigator.languages, доступное только для чтения, возвращает массив строк, представляющих предпочитаемые языки экземпляра Node.js. По умолчанию navigator.languages содержит только значение navigator.language, которое определяется во время выполнения библиотекой ICU, используемой Node.js, на основе языка операционной системы по умолчанию.
Резервное значение в сборках без ICU — ['en-US'].
console.log(`The preferred languages are '${navigator.languages}'`);
jscopy
navigator.locks
Стабильность: 1 — Экспериментальный
Свойство navigator.locks, доступное только для чтения, возвращает экземпляр LockManager, который можно использовать для координации доступа к ресурсам, совместно используемым несколькими потоками в одном процессе. Эта глобальная реализация соответствует семантике API LockManager в браузерах.
Модули JavaScript
// Request an exclusive lock
await navigator.locks.request('my_resource', async (lock) => {
// The lock has been acquired.
console.log(`Lock acquired: ${lock.name}`);
// Lock is automatically released when the function returns
});
// Request a shared lock
await navigator.locks.request('shared_resource', { mode: 'shared' }, async (lock) => {
// Multiple shared locks can be held simultaneously
console.log(`Shared lock acquired: ${lock.name}`);
});
CommonJS
// Request an exclusive lock
navigator.locks.request('my_resource', async (lock) => {
// The lock has been acquired.
console.log(`Lock acquired: ${lock.name}`);
// Lock is automatically released when the function returns
}).then(() => {
console.log('Lock released');
});
// Request a shared lock
navigator.locks.request('shared_resource', { mode: 'shared' }, async (lock) => {
// Multiple shared locks can be held simultaneously
console.log(`Shared lock acquired: ${lock.name}`);
}).then(() => {
console.log('Shared lock released');
});
Подробную документацию API см. в разделе worker_threads.locks.
navigator.platform
- Тип:
<string>
Свойство navigator.platform, доступное только для чтения, возвращает строку, идентифицирующую платформу, на которой запущен экземпляр Node.js.
console.log(`This process is running on ${navigator.platform}`);
jscopy
navigator.userAgent
- Тип:
<string>
Свойство navigator.userAgent, доступное только для чтения, возвращает строку user agent, состоящую из названия среды выполнения и номера её основной версии.
console.log(`The user-agent is ${navigator.userAgent}`); // Prints "Node.js/21"
jscopy
performance
Объект perf_hooks.performance.
Класс: PerformanceEntry
Класс PerformanceEntry. Подробнее см. PerformanceEntry.
Класс: PerformanceMark
Класс PerformanceMark. Подробнее см. PerformanceMark.
Класс: PerformanceMeasure
Класс PerformanceMeasure. Подробнее см. PerformanceMeasure.
Класс: PerformanceObserver
Класс PerformanceObserver. Дополнительные сведения см. в разделе PerformanceObserver.
Класс: PerformanceObserverEntryList
Класс PerformanceObserverEntryList. Дополнительные сведения см. в разделе PerformanceObserverEntryList.
Класс: PerformanceResourceTiming
Класс PerformanceResourceTiming. Дополнительные сведения см. в разделе PerformanceResourceTiming.
process
- Тип:
<Object>
Объект процесса. См. раздел об объекте process.
queueMicrotask(callback)
-
callback<Function>Функция, которую нужно поместить в очередь.
Метод queueMicrotask() ставит микрозадачу в очередь для вызова callback. Если callback выбрасывает исключение, генерируется событие 'uncaughtException' объекта process.
Очередь микрозадач управляется V8 и может использоваться аналогично очереди process.nextTick(), которой управляет Node.js. Очередь process.nextTick() всегда обрабатывается перед очередью микрозадач в каждом цикле цикла событий Node.js.
// Here, `queueMicrotask()` is used to ensure the 'load' event is always
// emitted asynchronously, and therefore consistently. Using
// `process.nextTick()` here would result in the 'load' event always emitting
// before any other promise jobs.
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);
};
jscopyКласс: QuotaExceededError
Класс WHATWG <QuotaExceededError>. Наследуется от <DOMException>.
Класс: ReadableByteStreamController
Реализация ReadableByteStreamController, совместимая с браузерами.
Класс: ReadableStream
Реализация ReadableStream, совместимая с браузерами.
Класс: ReadableStreamBYOBReader
Реализация ReadableStreamBYOBReader, совместимая с браузерами.
Класс: ReadableStreamBYOBRequest
Реализация ReadableStreamBYOBRequest, совместимая с браузерами.
Класс: ReadableStreamDefaultController
Реализация ReadableStreamDefaultController, совместимая с браузерами.
Класс: ReadableStreamDefaultReader
Реализация ReadableStreamDefaultReader, совместимая с браузерами.
Класс: Request
Реализация <Request>, совместимая с браузерами.
require()
Эта переменная может выглядеть глобальной, но таковой не является. См. раздел require().
Класс: Response
Реализация <Response>, совместимая с браузерами.
sessionStorage
Стабильность: 1.2 — кандидат на выпуск. Отключите этот API с помощью параметра --no-experimental-webstorage.
Реализация sessionStorage, совместимая с браузерами. Данные хранятся в памяти; квота хранилища составляет 10 МБ. Данные sessionStorage сохраняются только в рамках текущего запущенного процесса и не являются общими для разных рабочих потоков.
setImmediate(callback[, ...args])
Описание setImmediate приведено в разделе таймеров.
setInterval(callback, delay[, ...args])
Описание setInterval приведено в разделе таймеров.
setTimeout(callback, delay[, ...args])
Описание setTimeout приведено в разделе таймеров.
Класс: Storage
Стабильность: 1.2 — кандидат на выпуск. Отключите этот API с помощью параметра --no-experimental-webstorage.
Реализация <Storage>, совместимая с браузерами.
structuredClone(value[, options])
Метод WHATWG structuredClone.
Класс: SubtleCrypto
Реализация <SubtleCrypto>, совместимая с браузерами. Эта глобальная переменная доступна, только если двоичный файл Node.js был собран с поддержкой модуля node:crypto.
Класс: TextDecoder
Класс WHATWG TextDecoder. См. раздел TextDecoder.
Класс: TextDecoderStream
Реализация TextDecoderStream, совместимая с браузерами.
Класс: TextEncoder
Класс WHATWG TextEncoder. См. раздел TextEncoder.
Класс: TextEncoderStream
Реализация TextEncoderStream, совместимая с браузерами.
Класс: TransformStream
Реализация TransformStream, совместимая с браузерами.
Класс: TransformStreamDefaultController
Реализация TransformStreamDefaultController, совместимая с браузерами.
Класс: URL
Класс WHATWG URL. См. раздел URL.
Класс: URLPattern
Стабильность: 1 — экспериментальный API
Класс WHATWG URLPattern. См. раздел URLPattern.
Класс: URLSearchParams
Класс WHATWG URLSearchParams. См. раздел URLSearchParams.
Класс: WebAssembly
- Тип:
<Object>
Объект, служащий пространством имён для всех функций, связанных с WebAssembly W3C. Описание использования и совместимости см. в сети разработчиков Mozilla.
Класс: WebSocket
Реализация <WebSocket>, совместимая с браузерами. Отключите этот API с помощью флага командной строки --no-experimental-websocket.
Класс: WritableStream
Реализация WritableStream, совместимая с браузерами.
Класс: WritableStreamDefaultController
Реализация WritableStreamDefaultController, совместимая с браузерами.
Класс: WritableStreamDefaultWriter
Реализация WritableStreamDefaultWriter, совместимая с браузерами.
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/api/globals.html