Базовый модуль модуля

Модуль утилиты

Модуль util предоставляет практические функции инструмента, такие как определение типа данных, копирование атрибутов объекта, анализ строк шаблона и обработка событий.

Ниже приводится конкретное введение и примеры:

  1. Определить тип данных. Этот модуль предоставляет такие методы , util.is[type] как isDate, и т. д. для определения типа данных входящих параметров, например:isRegExpisError
1 2 3
var util = require('util'); console.log(util.isDate(new Date())); console.log(util.isRegExp(/some regexp/));
  1. Копирование свойств объекта. util.inherits() Этот метод может опционально наследовать один конструктор от другого, реализуя тем самым прототипное наследование.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
var util = require('util'); function Animal() { this.name = 'Animal'; this.sleep = function() { console.log(this.name + '正在睡觉!'); } } Animal.prototype.eat = function(food) { console.log(this.name + '正在吃:' + food); }; function Cat() { this.name = 'cat'; } util.inherits(Cat, Animal);

Используйте Catэтот конструктор, чтобы наследовать Animalсвойства экземпляра и свойства прототипа и распечатать Catсвойства и методы экземпляра.

1 2 3 4
var cat = new Cat(); console.log(cat.name); console.log(cat.eat('fish')); console.log(cat.sleep());
  1. util.format() Форматированный шаблон вывода
1 2 3 4 5
const util = require('util'); const str1 = util.format('%s:%s', 'foo'); const str2 = util.format('%s:%s', 'foo', 'bar', 'baz'); console.log(str1) // => 'foo:%s' console.log(str2) // => 'foo:bar baz'

Выше приведены utilнекоторые распространенные методы модулей, которые часто можно использовать для упрощения фактического процесса разработки.

объект

LruCache

Объект кэша LRU (наименее недавно использовавшийся), см.LruCacheобъект.

1
LruCache util.LruCache;

TextDecoder

TextDecoderобъект декодирования, см.TextDecoderобъект.

1
TextDecoder util.TextDecoder;

TextEncoder

TextEncoderКодирование объектов, см.TextEncoderобъект.

1
TextEncoder util.TextEncoder;

types

typesМодуль предоставляет инструментальные функции для определения типов данных.

1
types util.types;

статическая функция

format

Форматировать переменные в соответствии с указанным форматом

1 2
static String util.format(String fmt, ...args);

Параметры звонка:

  • fmt: строка, строка формата
  • args: ..., список необязательных параметров

Результаты возврата:

  • String, возвращает отформатированную строку

форматировать переменную формата

1
static String util.format(...args);

Параметры звонка:

  • args: ..., список необязательных параметров

Результаты возврата:

  • String, возвращает отформатированную строку

inherits

Наследуйте функции прототипа от одного конструктора к другому. Прототипом конструктора будет установлен новый объект, созданный из суперкласса (суперконструктор).

1 2
static util.inherits(Value constructor, Value superConstructor);

Параметры звонка:

  • constructor: Значение, начальный конструктор
  • superConstructor: Value, унаследованный суперкласс.

inspect

Функция возвращает строковое представление объекта obj, в основном используемое для отладки. Дополнительные параметры можно использовать для изменения определенных аспектов форматированной строки.

1 2
static String util.inspect(Value obj, Object options = {});

Параметры звонка:

  • obj: Значение, указывает объект, который будет обработан.
  • options: Объект, укажите параметры управления форматом.

Результаты возврата:

  • String, возвращает отформатированную строку

Поддерживаются следующие параметры:

1 2 3 4 5 6 7 8 9
{ "colors": false, // specify if output should be colorized, defaults to false "depth": 2, // specify the max depth of the output, defaults to 2 "table": false, // specify if output should be a table, defaults to false "encode_string": true, // specify if string should be encoded, defaults to true "maxArrayLength": 100, // specify max number of array elements to show, set to 0 or negative to show no elements, defaults to 100 "maxStringLength": 10000, // specify max string length to output, set to 0 or negative to show no strings, defaults to 10000 "fields": [], // specify the fields to be displayed, defaults to all }

deprecate

Инкапсулирует данную функцию.Эта функция только совместима и не выводит предупреждений.

1 2 3
static Function util.deprecate(Function fn, String msg, String code = "");

Параметры звонка:

  • fn: Функция, учитывая функцию, которую необходимо инкапсулировать.
  • msg: Строка с предупреждающим сообщением.
  • code: Строка с номером предупреждения.

Результаты возврата:

  • Function, если результат инкапсуляции

isEmpty

Проверяет, содержит ли данная переменная значение (нет перечисляемых свойств)

1
static Boolean util.isEmpty(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если пусто

isArray

Проверяет, является ли данная переменная массивом

1
static Boolean util.isArray(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это массив

isBoolean

Проверяет, является ли данная переменная логической величиной

1
static Boolean util.isBoolean(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это логическое значение, оно возвращает True

isNull

Проверяет, является ли данная переменная нулевой

1
static Boolean util.isNull(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это значение Null, оно возвращает True

isNullOrUndefined

Проверяет, является ли данная переменная нулевой или неопределенной.

1
static Boolean util.isNullOrUndefined(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если оно равно Null или Undefined, оно возвращает True

isNumber

Проверяет, является ли данная переменная числом

1
static Boolean util.isNumber(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это число

isBigInt

Проверяет, является ли данная переменная BigInt

1
static Boolean util.isBigInt(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это число

isString

Проверяет, является ли данная переменная строкой

1
static Boolean util.isString(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это строка

isUndefined

Проверяет, является ли данная переменная неопределенной

1
static Boolean util.isUndefined(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если оно не определено, верните True

isRegExp

Проверяет, является ли данная переменная обычным объектом

1
static Boolean util.isRegExp(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это обычный объект

isObject

Проверяет, является ли данная переменная объектом

1
static Boolean util.isObject(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это объект

isDate

Проверяет, является ли данная переменная объектом даты.

1
static Boolean util.isDate(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это объект даты

isNativeError

Проверяет, является ли данная переменная объектом ошибки.

1
static Boolean util.isNativeError(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это объект ошибки

isPrimitive

Проверяет, имеет ли данная переменная примитивный тип.

1
static Boolean util.isPrimitive(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это примитивный тип

isSymbol

Проверьте, имеет ли данная переменная тип символа.

1
static Boolean util.isSymbol(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это тип символа, он возвращает True

isDataView

Проверяет, имеет ли данная переменная тип DataView.

1
static Boolean util.isDataView(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это тип DataView, он возвращает True

isExternal

Проверяет, имеет ли данная переменная тип Внешний.

1
static Boolean util.isExternal(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это внешний тип, он возвращает True

isMap

Проверьте, имеет ли данная переменная тип Map

1
static Boolean util.isMap(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это тип карты, он возвращает True

isMapIterator

Проверяет, имеет ли данная переменная тип MapIterator.

1
static Boolean util.isMapIterator(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это тип MapIterator

isPromise

Проверяет, имеет ли данная переменная тип Promise.

1
static Boolean util.isPromise(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это тип Promise, он возвращает True

isAsyncFunction

Проверяет, имеет ли данная переменная тип AsyncFunction.

1
static Boolean util.isAsyncFunction(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это тип AsyncFunction, он возвращает True

isSet

Проверяет, имеет ли данная переменная тип Set

1
static Boolean util.isSet(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это тип Set, он возвращает True

isSetIterator

Проверяет, имеет ли данная переменная тип SetIterator.

1
static Boolean util.isSetIterator(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это тип SetIterator, он возвращает True

isTypedArray

Проверяет, имеет ли данная переменная тип TypedArray.

1
static Boolean util.isTypedArray(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это тип TypedArray, он возвращает True

isUint8Array

Проверяет, имеет ли данная переменная тип Uint8Array.

1
static Boolean util.isUint8Array(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это тип Uint8Array

isFunction

Проверяет, является ли данная переменная объектом функции.

1
static Boolean util.isFunction(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, возвращает True, если это объект функции

isBuffer

Проверяет, является ли данная переменная функциейBufferобъект

1
static Boolean util.isBuffer(Value v);

Параметры звонка:

  • v: Значение, учитывая переменную, которую необходимо обнаружить.

Результаты возврата:

  • Boolean, если это функцияBufferОбъект возвращает истину

isDeepEqual

Глубина тестового значения равна ожидаемому значению

1 2
static Boolean util.isDeepEqual(Value actual, Value expected);

Параметры звонка:

  • actual: Значение, значение для проверки.
  • expected: Значение, ожидаемое значение

Результаты возврата:

  • Boolean, возвращает True, если глубины равны

has

Запросить, содержит ли указанный объект данный ключ

1 2
static Boolean util.has(Value v, String key);

Параметры звонка:

  • v: Значение, соответствующее запрашиваемому объекту.
  • key: Строка, укажите ключ для запроса

Результаты возврата:

  • Boolean, возвращает массив всех ключей объекта

keys

Запросить все массивы ключей указанного объекта

1
static Array util.keys(Value v);

Параметры звонка:

  • v: Значение, соответствующее запрашиваемому объекту.

Результаты возврата:

  • Array, возвращает массив всех ключей объекта

values

Запросить все массивы значений указанного объекта

1
static Array util.values(Value v);

Параметры звонка:

  • v: Значение, соответствующее запрашиваемому объекту.

Результаты возврата:

  • Array, возвращает массив всех значений объекта

clone

Клонировать данную переменную, если это объект или массив, скопировать содержимое в новый объект.

1
static Value util.clone(Value v);

Параметры звонка:

  • v: Значение, заданное для клонируемой переменной.

Результаты возврата:

  • Value, возвращает результат клонирования

deepFreeze

Глубокая заморозка объекта. Замороженный объект и объекты, которые он содержит, нельзя будет изменить.

1
static util.deepFreeze(Value v);

Параметры звонка:

  • v: Значение, указывает объект, который нужно заморозить.

extend

Расширить ключевые значения одного или нескольких объектов до указанного объекта

1 2
static Value util.extend(Value v, ...objs);

Параметры звонка:

  • v: Значение, указывает объект, который будет расширен.
  • objs: ..., указывает один или несколько объектов для расширения

Результаты возврата:

  • Value, возвращает развернутый результат

_extend

Расширить ключевые значения одного или нескольких объектов до указанного объекта, который является псевдонимом расширения.

1 2
static Value util._extend(Value v, ...objs);

Параметры звонка:

  • v: Значение, указывает объект, который будет расширен.
  • objs: ..., указывает один или несколько объектов для расширения

Результаты возврата:

  • Value, возвращает развернутый результат

pick

ВернутьobjectСкопировать, отфильтровать только значения атрибутов указанного ключа

1 2
static Object util.pick(Value v, ...objs);

Параметры звонка:

  • v: Значение, указывает объект для фильтрации.
  • objs: ..., укажите одну или несколько клавиш для выбора

Результаты возврата:

  • Object, возвращает отфильтрованные результаты

omit

ВернутьobjectКопировать, исключая только значение атрибута указанного ключа

1 2
static Object util.omit(Value v, ...keys);

Параметры звонка:

  • v: Значение, указывает объект для фильтрации.
  • keys: ..., укажите один или несколько ключей для исключения

Результаты возврата:

  • Object, возвращает исключенные результаты

first

Получить первый элемент массива

1
static Value util.first(Value v);

Параметры звонка:

  • v: Значение, заданное массивом, который необходимо получить.

Результаты возврата:

  • Value, возвращает полученный элемент

Получить первые несколько элементов массива

1 2
static Value util.first(Value v, Integer n);

Параметры звонка:

  • v: Значение, заданное массивом, который необходимо получить.
  • n: целое число, указывает количество элементов, которые необходимо получить.

Результаты возврата:

  • Value, возвращает полученный массив элементов

last

Получить последний элемент массива

1
static Value util.last(Value v);

Параметры звонка:

  • v: Значение, заданное массивом, который необходимо получить.

Результаты возврата:

  • Value, возвращает полученный элемент

Получить несколько элементов в конце массива

1 2
static Value util.last(Value v, Integer n);

Параметры звонка:

  • v: Значение, заданное массивом, который необходимо получить.
  • n: целое число, указывает количество элементов, которые необходимо получить.

Результаты возврата:

  • Value, возвращает полученный массив элементов

unique

Получить дедуплицированную копию элементов массива

1 2
static Array util.unique(Value v, Boolean sorted = false);

Параметры звонка:

  • v: Значение, учитывая массив, который нужно дублировать.
  • sorted: логическое значение, указывает, отсортирован ли массив. Если массив отсортирован, будет использоваться быстрый алгоритм.

Результаты возврата:

  • Array, возвращает массив после удаления повторяющихся элементов

union

Объедините значения одного или нескольких массивов в массив с уникальными значениями.

1
static Array util.union(...arrs);

Параметры звонка:

  • arrs: ..., укажите один или несколько массивов для объединения

Результаты возврата:

  • Array, возвращает объединенный результат

intersection

Возвращает пересечение массива, содержащего arr, исключая один или несколько элементов массива.

1
static Array util.intersection(...arrs);

Параметры звонка:

  • arrs: ..., укажите один или несколько массивов, используемых для расчета пересечения

Результаты возврата:

  • Array, возвращает результат вычисления пересечения

flatten

Преобразуйте массив с несколькими уровнями вложенности (вложенность может быть любым количеством уровней) в массив только с одним уровнем. Если вы передадите параметр неглубокий, массив будет уменьшен до одного измерения вложенности.

1 2
static Array util.flatten(Value arr, Boolean shallow = false);

Параметры звонка:

  • arr: Значение, указывает массив, который нужно преобразовать.
  • shallow: логическое значение, указывает, следует ли уменьшать только одно измерение вложенности, значение по умолчанию — false

Результаты возврата:

  • Array, возвращает результат преобразования

without

Возвращает массив, содержащий один или несколько элементов массива arr, исключая один или несколько элементов.

1 2
static Array util.without(Value arr, ...els);

Параметры звонка:

  • arr: Значение, указывает массив, который необходимо исключить.
  • els: ..., указывает один или несколько элементов, которые нужно исключить

Результаты возврата:

  • Array, возвращает исключенные результаты

difference

Возвращает массив, содержащий элементы массива arr, за исключением элементов массива без.

1 2
static Array util.difference(Array list, ...arrs);

Параметры звонка:

  • list: Массив, указывает массив, который необходимо исключить.
  • arrs: ..., указывает один или несколько массивов для исключения

Результаты возврата:

  • Array, возвращает исключенные результаты

each

Пройдите все элементы в списке и выведите каждый элемент по порядку. Если передается параметр контекста, итератор привязывается к объекту контекста. При каждом вызове итератора передаются три параметра: (элемент, индекс, список).

1 2 3
static Value util.each(Value list, Function iterator, Value context = undefined);

Параметры звонка:

  • list: Значение, указывает список или объект, который необходимо пройти.
  • iterator: Функция, определяет функцию обратного вызова, используемую для обхода.
  • context: Значение, указывает объект контекста, привязанный при вызове итератора.

Результаты возврата:

  • Value, возвращает сам список

map

Каждое значение в списке сопоставляется с новым массивом с помощью функции преобразования (итератор). Если передается параметр контекста, итератор привязывается к объекту контекста. При каждом вызове итератора передаются три параметра: (элемент, индекс, список).

1 2 3
static Array util.map(Value list, Function iterator, Value context = undefined);

Параметры звонка:

  • list: Значение, указывает список или объект, который необходимо преобразовать.
  • iterator: Функция, указывает функцию обратного вызова, используемую для преобразования.
  • context: Значение, указывает объект контекста, привязанный при вызове итератора.

Результаты возврата:

  • Array, возвращает результат преобразования

reduce

Сократите элементы в списке до одного значения. Если передается параметр контекста, итератор привязывается к объекту контекста. При каждом вызове итератора передаются три параметра: (памятка, элемент, индекс, список).

1 2 3 4
static Value util.reduce(Value list, Function iterator, Value memo, Value context = undefined);

Параметры звонка:

  • list: Значение, указывает список или объект для суммирования.
  • iterator: Функция, определяет функцию обратного вызова, используемую для разрешения.
  • memo: Значение, указывает начальное значение уменьшения.
  • context: Значение, указывает объект контекста, привязанный при вызове итератора.

Результаты возврата:

  • Value, возвращает суммарный результат

parseArgs

Разберите строку командной строки и верните список параметров.

1
static NArray util.parseArgs(String command);

Параметры звонка:

  • command: String, указывает строку командной строки для анализа.

Результаты возврата:

  • NArray, возвращает проанализированный список параметров

compile

Скомпилировать скрипт в двоичный код

1 2 3
static Buffer util.compile(String srcname, String script, Integer mode = 0);

Параметры звонка:

  • srcname: Строка, укажите имя добавляемого скрипта
  • script: строка, указывает код сценария, который необходимо скомпилировать.
  • mode: целое число, режим компиляции, 0: модуль, 1: скрипт, 2: рабочий, по умолчанию — 0

Результаты возврата:

  • Buffer, возвращает скомпилированный двоичный код

util.compileСценарии можно скомпилировать во внутренние блоки рабочих данных версии 8 (немашинный исполняемый код). Скомпилированный код можно напрямую загрузить и выполнить путем запуска и запроса после сохранения в формате *.jsc.

Поскольку после компиляции целевой код не сможет обратно получить исходный код, программы, использующие Function.toString, не будут работать должным образом.


sync

Оберните функции обратного вызова или асинхронные функции для их синхронного вызова.

1 2
static Function util.sync(Function func, Boolean async_func = false);

Параметры звонка:

  • func: Функция, учитывая функцию, которую необходимо обернуть.
  • async_func: логическое значение, указывает, что func обрабатывается как асинхронная функция. Если значение false, оно будет оцениваться автоматически.

Результаты возврата:

  • Function, возвращает функцию, которая выполняется синхронно

util.syncОбработайте функцию обратного вызова или асинхронную функцию в функцию синхронизации, чтобы облегчить вызов.

Пример обратного вызова выглядит следующим образом:

1 2 3 4 5 6 7 8 9 10 11
// callback var util = require('util'); function cb_test(a, b, cb) { setTimeout(() => { cb(null, a + b); }, 100); } var fn_sync = util.sync(cb_test); console.log(fn_sync(100, 200));

Пример асинхронности выглядит следующим образом:

1 2 3 4 5 6 7 8 9
// async/await var util = require('util'); async function async_test(a, b) { return a + b; } var fn_sync = util.sync(async_test); console.log(fn_sync(100, 200));

Для функций, возвращающих обещания, которые не помечены как асинхронные, режим синхронизации можно указать вручную:

1 2 3 4 5 6 7 8 9 10 11
// async/await var util = require('util'); function async_test(a, b) { return new Promise(function(resolve, reject) { resolve(a + b); }); } var fn_sync = util.sync(async_test, true); console.log(fn_sync(100, 200));

promisify

Обернуть функцию обратного вызова для асинхронного вызова

1
static Function util.promisify(Function func);

Параметры звонка:

  • func: Функция, учитывая функцию, которую необходимо обернуть.

Результаты возврата:

  • Function, возвращает асинхронную функцию

util.promisifyОбработайте функцию обратного вызова как асинхронную функцию, чтобы облегчить вызов.

Пример обратного вызова выглядит следующим образом:

1 2 3 4 5 6 7 8 9 10 11
// callback var util = require('util'); function cb_test(a, b, cb) { setTimeout(() => { cb(null, a + b); }, 100); } var fn_sync = util.promisify(cb_test); console.log(async fn_sync(100, 200));

callbackify

Обернуть асинхронную функцию для обратного вызова

1
static Function util.callbackify(Function func);

Параметры звонка:

  • func: Функция, учитывая функцию, которую необходимо обернуть.

Результаты возврата:

  • Function, вернуть функцию обратного вызова

util.callbackifyОбработайте асинхронную функцию в функцию обратного вызова, чтобы облегчить вызов.

Пример асинхронности выглядит следующим образом:

1 2 3 4 5 6 7 8 9 10 11 12
// async var util = require('util'); async function async_test(a, b) { return a + b; } var fn_callback = util.callbackify(async_test); fn_callback(100, 200, (err, result) => { console.log(result); });

buildInfo

Запросить текущую информацию о версии ядра и компонентов.

1
static Object util.buildInfo();

Результаты возврата:

  • Object, возвращает объект версии компонента
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ "fibjs": "0.25.0", "clang": "9.1", "date": "Jun 12 2018 07:22:40", "vender": { "ev": "4.24", "expat": "2.2.5", "gd": "2.2.4", "jpeg": "8.3", "leveldb": "1.17", "mongo": "0.7", "pcre": "8.21", "png": "1.5.4", "mbedtls": "2.6.1", "snappy": "1.1.2", "sqlite": "3.23.0", "tiff": "3.9.5", "uuid": "1.6.2", "v8": "6.7.288.20", "v8-snapshot": true, "zlib": "1.2.7", "zmq": "3.1" } }