Módulo módulo básico

Utilidad del módulo

El módulo util proporciona funciones de herramientas prácticas como juicio de tipos de datos, copia de atributos de objetos, análisis de cadenas de plantillas y procesamiento de eventos.

La siguiente es una introducción específica y ejemplos:

  1. Determinar el tipo de datos: util.is[type] este módulo proporciona métodos como isDate,, etc. para determinar el tipo de datos de los parámetros entrantes, por ejemplo isRegExp:isError
1 2 3
var util = require('util'); console.log(util.isDate(new Date())); console.log(util.isRegExp(/some regexp/));
  1. Copia de propiedades de objetos: util.inherits() este método puede, opcionalmente, heredar un constructor de otro, implementando así la herencia prototípica.
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);

Utilice Cateste constructor para heredar Animallas propiedades de la instancia y las propiedades del prototipo de e imprimir Catlas propiedades y métodos de la instancia.

1 2 3 4
var cat = new Cat(); console.log(cat.name); console.log(cat.eat('fish')); console.log(cat.sleep());
  1. util.format() Plantilla de salida formateada
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'

Los anteriores son utilalgunos métodos comunes de módulos, que a menudo se pueden utilizar para simplificar el proceso de desarrollo real.

objeto

LruCache

Objeto de caché LRU (menos utilizado recientemente), consulteLruCacheobjeto.

1
LruCache util.LruCache;

TextDecoder

TextDecoderobjeto de decodificación, verTextDecoderobjeto.

1
TextDecoder util.TextDecoder;

TextEncoder

TextEncoderCodificar objetos, verTextEncoderobjeto.

1
TextEncoder util.TextEncoder;

types

typesEl módulo proporciona funciones de herramienta para determinar tipos de datos.

1
types util.types;

función estática

format

Dar formato a las variables según el formato especificado.

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

Parámetros de llamada:

  • fmt: Cadena, cadena de formato
  • args: ..., lista de parámetros opcionales

Resultados de devolución:

  • String, devuelve la cadena formateada

formato variable de formato

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

Parámetros de llamada:

  • args: ..., lista de parámetros opcionales

Resultados de devolución:

  • String, devuelve la cadena formateada

inherits

Heredar funciones prototipo de un constructor a otro. El prototipo del constructor se establecerá en un nuevo objeto creado a partir de la superclase (superConstructor).

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

Parámetros de llamada:

  • constructor: Valor, constructor inicial
  • superConstructor: Valor, la superclase heredada

inspect

La función devuelve la representación de cadena de obj, utilizada principalmente para depurar. Se pueden utilizar opciones adicionales para cambiar ciertos aspectos de la cadena formateada.

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

Parámetros de llamada:

  • obj: Valor, especifica el objeto a procesar
  • options: Objeto, especificar opciones de control de formato

Resultados de devolución:

  • String, devuelve la cadena formateada

Se admiten los siguientes parámetros:

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

Encapsula la función dada. Esta función solo es compatible y no genera advertencias.

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

Parámetros de llamada:

  • fn: Función, dada la función que necesita ser encapsulada
  • msg: Cadena, mensaje de advertencia dado
  • code: Cadena, número de advertencia dado

Resultados de devolución:

  • Function, si el resultado de la encapsulación

isEmpty

Comprueba si la variable dada no contiene ningún valor (no hay propiedades enumerables)

1
static Boolean util.isEmpty(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve Verdadero si está vacío

isArray

Comprueba si la variable dada es una matriz

1
static Boolean util.isArray(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es una matriz

isBoolean

Comprueba si la variable dada es booleana

1
static Boolean util.isBoolean(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es booleano devuelve True

isNull

Comprueba si la variable dada es nula

1
static Boolean util.isNull(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es Nulo, devuelve Verdadero

isNullOrUndefined

Comprueba si la variable dada es nula o indefinida

1
static Boolean util.isNullOrUndefined(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es nulo o indefinido, devuelve Verdadero

isNumber

Comprueba si la variable dada es un número

1
static Boolean util.isNumber(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es un número

isBigInt

Comprueba si la variable dada es un BigInt

1
static Boolean util.isBigInt(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es un número

isString

Comprueba si la variable dada es una cadena

1
static Boolean util.isString(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es una cadena

isUndefined

Comprueba si la variable dada no está definida

1
static Boolean util.isUndefined(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si no está definido, devuelve Verdadero

isRegExp

Comprueba si la variable dada es un objeto normal.

1
static Boolean util.isRegExp(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es un objeto normal

isObject

Comprueba si la variable dada es un objeto.

1
static Boolean util.isObject(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es un objeto

isDate

Prueba si la variable dada es un objeto de fecha

1
static Boolean util.isDate(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es un objeto de fecha

isNativeError

Prueba si la variable dada es un objeto de error

1
static Boolean util.isNativeError(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es un objeto de error

isPrimitive

Comprueba si la variable dada es de tipo primitivo.

1
static Boolean util.isPrimitive(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es un tipo primitivo

isSymbol

Compruebe si la variable dada es de tipo Símbolo

1
static Boolean util.isSymbol(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es de tipo Símbolo, devuelve Verdadero

isDataView

Comprueba si la variable dada es de tipo DataView

1
static Boolean util.isDataView(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es del tipo DataView devuelve True

isExternal

Comprueba si la variable dada es de tipo Externo

1
static Boolean util.isExternal(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es de tipo Externo, devuelve Verdadero

isMap

Compruebe si la variable dada es de tipo Mapa

1
static Boolean util.isMap(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es del tipo Mapa, devuelve Verdadero

isMapIterator

Comprueba si la variable dada es del tipo MapIterator

1
static Boolean util.isMapIterator(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es del tipo MapIterator

isPromise

Comprueba si la variable dada es de tipo Promesa

1
static Boolean util.isPromise(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es del tipo Promesa, devuelve Verdadero

isAsyncFunction

Comprueba si la variable dada es de tipo AsyncFunction

1
static Boolean util.isAsyncFunction(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es del tipo AsyncFunction, devuelve True

isSet

Comprueba si la variable dada es de tipo Set

1
static Boolean util.isSet(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es de tipo Set, devuelve True

isSetIterator

Comprueba si la variable dada es del tipo SetIterator

1
static Boolean util.isSetIterator(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es del tipo SetIterator, devuelve True

isTypedArray

Comprueba si la variable dada es de tipo TypedArray

1
static Boolean util.isTypedArray(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es del tipo TypedArray, devuelve True

isUint8Array

Comprueba si la variable dada es del tipo Uint8Array

1
static Boolean util.isUint8Array(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es del tipo Uint8Array

isFunction

Prueba si la variable dada es un objeto de función

1
static Boolean util.isFunction(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, devuelve True si es un objeto de función

isBuffer

Comprueba si la variable dada es una función.Bufferobjeto

1
static Boolean util.isBuffer(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a detectar

Resultados de devolución:

  • Boolean, si es una funciónBufferEl objeto devuelve Verdadero

isDeepEqual

La profundidad del valor de prueba es igual al valor esperado

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

Parámetros de llamada:

  • actual: Valor, el valor a probar
  • expected: Valor, valor esperado

Resultados de devolución:

  • Boolean, devuelve True si las profundidades son iguales

has

Consultar si el objeto especificado contiene la clave dada

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

Parámetros de llamada:

  • v: Valor, dado el objeto a consultar
  • key: Cadena, especifique la clave a consultar

Resultados de devolución:

  • Boolean, devuelve una matriz de todas las claves del objeto

keys

Consultar todas las matrices de claves del objeto especificado.

1
static Array util.keys(Value v);

Parámetros de llamada:

  • v: Valor, dado el objeto a consultar

Resultados de devolución:

  • Array, devuelve una matriz de todas las claves del objeto

values

Consultar todas las matrices de valores del objeto especificado.

1
static Array util.values(Value v);

Parámetros de llamada:

  • v: Valor, dado el objeto a consultar

Resultados de devolución:

  • Array, devuelve una matriz de todos los valores del objeto

clone

Clona la variable dada, si es un objeto o matriz, copia el contenido al nuevo objeto

1
static Value util.clone(Value v);

Parámetros de llamada:

  • v: Valor, dada la variable a clonar

Resultados de devolución:

  • Value, devuelve el resultado de la clonación

deepFreeze

Congelar profundamente un objeto. No se permitirá modificar el objeto congelado ni los objetos que contiene.

1
static util.deepFreeze(Value v);

Parámetros de llamada:

  • v: Valor, especifica el objeto a congelar

extend

Extender los valores clave de uno o más objetos al objeto especificado

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

Parámetros de llamada:

  • v: Valor, especifica el objeto a extender
  • objs: ..., especifica uno o más objetos para expansión

Resultados de devolución:

  • Value, devuelve el resultado expandido

_extend

Extienda los valores clave de uno o más objetos al objeto especificado, que es un alias de extender

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

Parámetros de llamada:

  • v: Valor, especifica el objeto a extender
  • objs: ..., especifica uno o más objetos para expansión

Resultados de devolución:

  • Value, devuelve el resultado expandido

pick

Devolver unobjectCopie, filtre solo los valores de atributo de la clave especificada

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

Parámetros de llamada:

  • v: Valor, especifica el objeto a filtrar
  • objs: ..., especifique una o más claves para la selección

Resultados de devolución:

  • Object, devuelve resultados filtrados

omit

Devolver unobjectCopiar, excluyendo solo el valor del atributo de la clave especificada

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

Parámetros de llamada:

  • v: Valor, especifica el objeto a filtrar
  • keys: ..., especifique una o más claves para exclusión

Resultados de devolución:

  • Object, devuelve resultados excluidos

first

Obtener el primer elemento de la matriz.

1
static Value util.first(Value v);

Parámetros de llamada:

  • v: Valor, dado el array a obtener

Resultados de devolución:

  • Value, devuelve el elemento recuperado

Obtener los primeros elementos múltiples de una matriz

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

Parámetros de llamada:

  • v: Valor, dado el array a obtener
  • n: Entero, especifica el número de elementos a obtener

Resultados de devolución:

  • Value, devuelve la matriz de elementos obtenida

last

Obtener el último elemento de la matriz.

1
static Value util.last(Value v);

Parámetros de llamada:

  • v: Valor, dado el array a obtener

Resultados de devolución:

  • Value, devuelve el elemento recuperado

Obtener múltiples elementos al final de una matriz

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

Parámetros de llamada:

  • v: Valor, dado el array a obtener
  • n: Entero, especifica el número de elementos a obtener

Resultados de devolución:

  • Value, devuelve la matriz de elementos obtenida

unique

Obtenga una copia deduplicada de los elementos de una matriz

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

Parámetros de llamada:

  • v: Valor, dada la matriz que se va a duplicar
  • sorted: booleano, especifica si la matriz está ordenada. Si la matriz está ordenada, se utilizará un algoritmo rápido.

Resultados de devolución:

  • Array, devuelve la matriz después de eliminar elementos duplicados

union

Combine los valores de una o más matrices en una matriz con valores únicos

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

Parámetros de llamada:

  • arrs: ..., especifique una o más matrices para fusionar

Resultados de devolución:

  • Array, devuelve el resultado combinado

intersection

Devuelve la intersección de la matriz que contiene arr excluyendo uno o más elementos de la matriz.

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

Parámetros de llamada:

  • arrs: ..., especifique una o más matrices utilizadas para calcular la intersección

Resultados de devolución:

  • Array, devuelve el resultado del cálculo de la intersección

flatten

Convierta una matriz con múltiples niveles de anidamiento (el anidamiento puede ser cualquier número de niveles) en una matriz con un solo nivel. Si pasa el parámetro superficial, la matriz se reducirá a una sola dimensión de anidamiento.

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

Parámetros de llamada:

  • arr: Valor, especifica la matriz a convertir
  • shallow: booleano, especifica si se reduce solo una dimensión de anidamiento; el valor predeterminado es falso

Resultados de devolución:

  • Array, devuelve el resultado de la conversión

without

Devuelve una matriz que contiene uno o más elementos en la matriz arr, excluyendo uno o más elementos.

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

Parámetros de llamada:

  • arr: Valor, especifica la matriz que se excluirá
  • els: ..., especifica uno o más elementos a excluir

Resultados de devolución:

  • Array, devuelve resultados excluidos

difference

Devuelve una matriz que contiene los elementos de la matriz arr excluyendo los elementos sin matriz.

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

Parámetros de llamada:

  • list: Matriz, especifica la matriz que se excluirá
  • arrs: ..., especifica una o más matrices para excluir

Resultados de devolución:

  • Array, devuelve resultados excluidos

each

Recorra todos los elementos de la lista y genere cada elemento en orden. Si se pasa el parámetro de contexto, el iterador está vinculado al objeto de contexto. Cada vez que se llama al iterador, se pasan tres parámetros: (elemento, índice, lista)

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

Parámetros de llamada:

  • list: Valor, especifica la lista u objeto a recorrer
  • iterator: Función, especifica la función de devolución de llamada utilizada para el recorrido.
  • context: Valor, especifica el objeto de contexto vinculado al llamar al iterador

Resultados de devolución:

  • Value, devuelve la lista misma

map

Cada valor de la lista se asigna a una nueva matriz mediante una función de transformación (iterador). Si se pasa el parámetro de contexto, el iterador está vinculado al objeto de contexto. Cada vez que se llama al iterador, se pasan tres parámetros: (elemento, índice, lista)

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

Parámetros de llamada:

  • list: Valor, especifica la lista u objeto a transformar
  • iterator: Función, especifica la función de devolución de llamada utilizada para la transformación.
  • context: Valor, especifica el objeto de contexto vinculado al llamar al iterador

Resultados de devolución:

  • Array, devuelve el resultado de la transformación

reduce

Reduzca los elementos de la lista a un solo valor. Si se pasa el parámetro de contexto, el iterador está vinculado al objeto de contexto. Cada vez que se llama al iterador, se pasan tres parámetros: (nota, elemento, índice, lista)

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

Parámetros de llamada:

  • list: Valor, especifica la lista u objeto a resumir
  • iterator: Función, especifica la función de devolución de llamada utilizada para la resolución.
  • memo: Valor, especifica el valor inicial de la reducción.
  • context: Valor, especifica el objeto de contexto vinculado al llamar al iterador

Resultados de devolución:

  • Value, devuelve el resultado resumido

parseArgs

Analiza la cadena de la línea de comando y devuelve la lista de parámetros

1
static NArray util.parseArgs(String command);

Parámetros de llamada:

  • command: Cadena, especifica la cadena de la línea de comando que se analizará

Resultados de devolución:

  • NArray, devuelve la lista de parámetros analizados

compile

Compilar script en código binario

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

Parámetros de llamada:

  • srcname: Cadena, especifique el nombre del script que se agregará
  • script: Cadena, especifica el código del script que se compilará
  • mode: Entero, modo de compilación, 0: módulo, 1: script, 2: trabajador, el valor predeterminado es 0

Resultados de devolución:

  • Buffer, devuelve el código binario compilado

util.compileLos scripts se pueden compilar en bloques de datos de ejecución internos v8 (código ejecutable que no es de máquina). El código compilado se puede cargar y ejecutar directamente mediante ejecución y se requiere después de guardarlo como *.jsc.

Dado que después de la compilación, el código de destino no podrá obtener el código fuente de forma inversa, los programas que dependen de Function.toString no se ejecutarán correctamente.


sync

Envuelva funciones de devolución de llamada o asíncronas para llamarlas sincrónicamente

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

Parámetros de llamada:

  • func: Función, dada la función que necesita ser empaquetada
  • async_func: Booleano, especifica que func se procesa como una función asíncrona. Si es falso, se juzgará automáticamente.

Resultados de devolución:

  • Function, devuelve una función que se ejecuta sincrónicamente

util.syncProcese la función de devolución de llamada o la función asíncrona en una función de sincronización para facilitar la llamada.

El ejemplo de devolución de llamada es el siguiente:

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

Un ejemplo asíncrono es el siguiente:

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

Para funciones de devolución de promesas que no están marcadas como asíncronas, el modo de sincronización se puede especificar manualmente:

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

Función de devolución de llamada envolvente para llamada asíncrona

1
static Function util.promisify(Function func);

Parámetros de llamada:

  • func: Función, dada la función que necesita ser empaquetada

Resultados de devolución:

  • Function, devuelve la función asíncrona

util.promisifyProcese la función de devolución de llamada como una función asíncrona para facilitar las llamadas.

El ejemplo de devolución de llamada es el siguiente:

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

Función Wrap Async para llamada de devolución de llamada

1
static Function util.callbackify(Function func);

Parámetros de llamada:

  • func: Función, dada la función que necesita ser empaquetada

Resultados de devolución:

  • Function, función de devolución de llamada

util.callbackifyProcese la función asíncrona en una función de devolución de llamada para facilitar la llamada.

Un ejemplo asíncrono es el siguiente:

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

Consultar la información actual de la versión del motor y del componente.

1
static Object util.buildInfo();

Resultados de devolución:

  • Object, devuelve el objeto de versión del componente
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" } }