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:
- Determinar el tipo de datos:
util.is[type]
este módulo proporciona métodos comoisDate
,, etc. para determinar el tipo de datos de los parámetros entrantes, por ejemploisRegExp
:isError
1
2
3var util = require('util');
console.log(util.isDate(new Date()));
console.log(util.isRegExp(/some regexp/));
- 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
16var 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 Cat
este constructor para heredar Animal
las propiedades de la instancia y las propiedades del prototipo de e imprimir Cat
las propiedades y métodos de la instancia.
1
2
3
4var cat = new Cat();
console.log(cat.name);
console.log(cat.eat('fish'));
console.log(cat.sleep());
- util.format() Plantilla de salida formateada
1
2
3
4
5const 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 util
algunos 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.
1LruCache util.LruCache;
TextDecoder
TextDecoderobjeto de decodificación, verTextDecoderobjeto.
1TextDecoder util.TextDecoder;
TextEncoder
TextEncoderCodificar objetos, verTextEncoderobjeto.
1TextEncoder util.TextEncoder;
types
typesEl módulo proporciona funciones de herramienta para determinar tipos de datos.
1types util.types;
función estática
format
Dar formato a las variables según el formato especificado.
1
2static 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
1static 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
2static 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
2static 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
3static 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)
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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.
1static 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.
1static 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
1static 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
1static 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.
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
1static 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
2static 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
2static 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.
1static 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.
1static 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
1static 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.
1static 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
2static 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
2static 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
2static 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
2static 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.
1static 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
2static 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.
1static 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
2static 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
2static 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
1static 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.
1static 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
2static 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
2static 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
2static 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
3static 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
3static 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
4static 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
1static 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
3static 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
2static 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
1static 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
1static 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.
1static 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"
}
}