Módulo util
O módulo de utilidade ofrece funcións de ferramentas prácticas, como o xuízo do tipo de datos, a copia de atributos de obxectos, a análise de cadeas de modelos e o procesamento de eventos.
A seguinte é unha introdución específica e exemplos:
- Determinar o tipo de datos:
util.is[type]
este módulo proporciona métodos comoisDate
,isRegExp
,isError
etc. para determinar o tipo de datos dos parámetros entrantes, por exemplo:
1
2
3var util = require('util');
console.log(util.isDate(new Date()));
console.log(util.isRegExp(/some regexp/));
- Copiado de propiedades de obxectos:
util.inherits()
este método pode herdar opcionalmente un construtor doutro, implementando así a herdanza 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);
Use Cat
este construtor para herdar Animal
as propiedades da instancia e as propiedades do prototipo de , e imprimir Cat
as propiedades e os métodos da instancia.
1
2
3
4var cat = new Cat();
console.log(cat.name);
console.log(cat.eat('fish'));
console.log(cat.sleep());
- util.format() Modelo de saída con formato
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'
Os anteriores son util
algúns métodos comúns de módulos, que moitas veces se poden usar para simplificar o proceso de desenvolvemento real.
obxecto
LruCache
Obxecto de caché LRU (usado menos recentemente), consulteLruCacheobxecto.
1LruCache util.LruCache;
TextDecoder
TextDecoderobxecto de decodificación, véxTextDecoderobxecto.
1TextDecoder util.TextDecoder;
TextEncoder
TextEncoderCodificación de obxectos, verTextEncoderobxecto.
1TextEncoder util.TextEncoder;
types
typesO módulo ofrece funcións de ferramentas para determinar tipos de datos.
1types util.types;
función estática
format
Formatear as variables segundo o formato especificado
1
2static String util.format(String fmt,
...args);
Parámetros de chamada:
- fmt: String, formato cadea
- args: ..., lista de parámetros opcional
Resultados de devolución:
- String, devolve a cadea formatada
variable de formato de formato
1static String util.format(...args);
Parámetros de chamada:
- args: ..., lista de parámetros opcional
Resultados de devolución:
- String, devolve a cadea formatada
inherits
Herda funcións prototipo dun construtor a outro. O prototipo do construtor establecerase nun novo obxecto creado a partir da superclase (superConstructor).
1
2static util.inherits(Value constructor,
Value superConstructor);
Parámetros de chamada:
- constructor: Valor, construtor inicial
- superConstructor: Value, a superclase herdada
inspect
A función devolve a representación en cadea de obj, utilizada principalmente para a depuración. Pódense usar opcións adicionais para cambiar certos aspectos da cadea formatada.
1
2static String util.inspect(Value obj,
Object options = {});
Parámetros de chamada:
- obj: Valor, especifica o obxecto que se vai procesar
- options: Obxecto, especifique as opcións de control de formato
Resultados de devolución:
- String, devolve a cadea formatada
Admítense os seguintes 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 a función indicada. Esta función só é compatible e non xera avisos.
1
2
3static Function util.deprecate(Function fn,
String msg,
String code = "");
Parámetros de chamada:
- fn: Función, dada a función que hai que encapsular
- msg: Cadea, dada a mensaxe de aviso
- code: Cadena, número de aviso dado
Resultados de devolución:
- Function, se o resultado da encapsulación
isEmpty
Comproba se a variable indicada non contén ningún valor (sen propiedades enumerables)
1static Boolean util.isEmpty(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se está baleiro
isArray
Comproba se a variable indicada é unha matriz
1static Boolean util.isArray(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é unha matriz
isBoolean
Comproba se a variable dada é un booleano
1static Boolean util.isBoolean(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é booleano, devolve True
isNull
Comproba se a variable indicada é nula
1static Boolean util.isNull(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é Nulo, devolve True
isNullOrUndefined
Comproba se a variable indicada é nula ou non definida
1static Boolean util.isNullOrUndefined(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é Nulo ou Indefinido, devolve True
isNumber
Comproba se a variable dada é un número
1static Boolean util.isNumber(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é un número
isBigInt
Proba se a variable indicada é un BigInt
1static Boolean util.isBigInt(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é un número
isString
Comproba se a variable indicada é unha cadea
1static Boolean util.isString(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é unha cadea
isUndefined
Comproba se a variable indicada non está definida
1static Boolean util.isUndefined(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se non está definido, devolve True
isRegExp
Comproba se a variable dada é un obxecto regular
1static Boolean util.isRegExp(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é un obxecto normal
isObject
Comproba se a variable dada é un obxecto
1static Boolean util.isObject(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é un obxecto
isDate
Comproba se a variable indicada é un obxecto de data
1static Boolean util.isDate(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é un obxecto de data
isNativeError
Comproba se a variable indicada é un obxecto de erro
1static Boolean util.isNativeError(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é un obxecto de erro
isPrimitive
Comproba se a variable indicada é de tipo primitivo
1static Boolean util.isPrimitive(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é un tipo primitivo
isSymbol
Comproba se a variable indicada é de tipo Símbolo
1static Boolean util.isSymbol(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é un tipo de símbolo, devolve True
isDataView
Comproba se a variable dada é do tipo DataView
1static Boolean util.isDataView(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é un tipo DataView, devolve True
isExternal
Comproba se a variable indicada é de tipo Externa
1static Boolean util.isExternal(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é un tipo externo, devolve True
isMap
Comproba se a variable indicada é do tipo Map
1static Boolean util.isMap(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é un tipo de mapa, devolve True
isMapIterator
Comproba se a variable indicada é do tipo MapIterator
1static Boolean util.isMapIterator(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é un tipo MapIterator
isPromise
Comproba se a variable indicada é de tipo Promesa
1static Boolean util.isPromise(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é un tipo Promise, devolve True
isAsyncFunction
Comproba se a variable indicada é de tipo AsyncFunction
1static Boolean util.isAsyncFunction(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é un tipo AsyncFunction, devolve True
isSet
Comproba se a variable indicada é do tipo Set
1static Boolean util.isSet(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é un tipo Set, devolve True
isSetIterator
Comproba se a variable indicada é do tipo SetIterator
1static Boolean util.isSetIterator(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é un tipo SetIterator, devolve True
isTypedArray
Comproba se a variable indicada é do tipo TypedArray
1static Boolean util.isTypedArray(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é un tipo TypedArray, devolve True
isUint8Array
Comproba se a variable indicada é do tipo Uint8Array
1static Boolean util.isUint8Array(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é de tipo Uint8Array
isFunction
Comproba se a variable indicada é un obxecto función
1static Boolean util.isFunction(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, devolve True se é un obxecto función
isBuffer
Comproba se a variable dada é unha funciónBufferobxecto
1static Boolean util.isBuffer(Value v);
Parámetros de chamada:
- v: Valor, dada a variable a detectar
Resultados de devolución:
- Boolean, se é unha funciónBufferO obxecto devolve True
isDeepEqual
A profundidade do valor da proba é igual ao valor esperado
1
2static Boolean util.isDeepEqual(Value actual,
Value expected);
Parámetros de chamada:
- actual: Valor, o valor a probar
- expected: Valor, valor esperado
Resultados de devolución:
- Boolean, devolve True se as profundidades son iguais
has
Consulta se o obxecto especificado contén a chave indicada
1
2static Boolean util.has(Value v,
String key);
Parámetros de chamada:
- v: Valor, dado o obxecto que se vai consultar
- key: Cadea, especifique a clave que se vai consultar
Resultados de devolución:
- Boolean, devolve unha matriz de todas as claves do obxecto
keys
Consulta todas as matrices de claves do obxecto especificado
1static Array util.keys(Value v);
Parámetros de chamada:
- v: Valor, dado o obxecto que se vai consultar
Resultados de devolución:
- Array, devolve unha matriz de todas as claves do obxecto
values
Consulta todas as matrices de valores do obxecto especificado
1static Array util.values(Value v);
Parámetros de chamada:
- v: Valor, dado o obxecto que se vai consultar
Resultados de devolución:
- Array, devolve unha matriz de todos os valores do obxecto
clone
Clona a variable dada, se é un obxecto ou matriz, copia o contido no novo obxecto
1static Value util.clone(Value v);
Parámetros de chamada:
- v: Valor, dada a variable que se vai clonar
Resultados de devolución:
- Value, devolve o resultado do clon
deepFreeze
Conxela un obxecto. Non se permitirá modificar o obxecto conxelado nin os obxectos que contén.
1static util.deepFreeze(Value v);
Parámetros de chamada:
- v: Valor, especifica o obxecto que se vai conxelar
extend
Estende os valores clave dun ou máis obxectos ao obxecto especificado
1
2static Value util.extend(Value v,
...objs);
Parámetros de chamada:
- v: Valor, especifica o obxecto que se vai ampliar
- objs: ..., especifica un ou máis obxectos para a súa expansión
Resultados de devolución:
- Value, devolve o resultado expandido
_extend
Estende os valores clave dun ou máis obxectos ao obxecto especificado, que é un alias de extensión
1
2static Value util._extend(Value v,
...objs);
Parámetros de chamada:
- v: Valor, especifica o obxecto que se vai ampliar
- objs: ..., especifica un ou máis obxectos para a súa expansión
Resultados de devolución:
- Value, devolve o resultado expandido
pick
Volver aobjectCopia, filtra só os valores de atributos da clave especificada
1
2static Object util.pick(Value v,
...objs);
Parámetros de chamada:
- v: Valor, especifica o obxecto a filtrar
- objs: ..., especifique unha ou máis teclas para a selección
Resultados de devolución:
- Object, devolve resultados filtrados
omit
Volver aobjectCopia, só excluíndo o valor do atributo da clave especificada
1
2static Object util.omit(Value v,
...keys);
Parámetros de chamada:
- v: Valor, especifica o obxecto a filtrar
- keys: ..., especifique unha ou máis claves para a exclusión
Resultados de devolución:
- Object, devolve resultados excluídos
first
Obter o primeiro elemento da matriz
1static Value util.first(Value v);
Parámetros de chamada:
- v: Valor, dada a matriz que se vai obter
Resultados de devolución:
- Value, devolve o elemento recuperado
Obter os primeiros elementos múltiples dunha matriz
1
2static Value util.first(Value v,
Integer n);
Parámetros de chamada:
- v: Valor, dada a matriz que se vai obter
- n: Número enteiro, especifica o número de elementos a obter
Resultados de devolución:
- Value, devolve a matriz de elementos obtida
last
Obter o último elemento da matriz
1static Value util.last(Value v);
Parámetros de chamada:
- v: Valor, dada a matriz que se vai obter
Resultados de devolución:
- Value, devolve o elemento recuperado
Obter varios elementos ao final dunha matriz
1
2static Value util.last(Value v,
Integer n);
Parámetros de chamada:
- v: Valor, dada a matriz que se vai obter
- n: Número enteiro, especifica o número de elementos a obter
Resultados de devolución:
- Value, devolve a matriz de elementos obtida
unique
Obter unha copia deduplicada dos elementos dunha matriz
1
2static Array util.unique(Value v,
Boolean sorted = false);
Parámetros de chamada:
- v: Valor, dada a matriz que se vai duplicar
- sorted: Booleano, especifica se a matriz está ordenada. Se a matriz está ordenada, empregarase un algoritmo rápido.
Resultados de devolución:
- Array, devolve a matriz despois de eliminar os elementos duplicados
union
Combina os valores dunha ou máis matrices nunha matriz con valores únicos
1static Array util.union(...arrs);
Parámetros de chamada:
- arrs: ..., especifique unha ou máis matrices para combinar
Resultados de devolución:
- Array, devolve o resultado combinado
intersection
Devolve a intersección da matriz que contén arr excluíndo un ou máis elementos da matriz.
1static Array util.intersection(...arrs);
Parámetros de chamada:
- arrs: ..., especifique unha ou máis matrices utilizadas para calcular a intersección
Resultados de devolución:
- Array, devolve o resultado do cálculo da intersección
flatten
Converte unha matriz con varios niveis de anidación (o aniñamento pode ser calquera número de niveis) nunha matriz cun só nivel. Se pasa o parámetro superficial, a matriz reducirase a só unha dimensión de anidación.
1
2static Array util.flatten(Value arr,
Boolean shallow = false);
Parámetros de chamada:
- arr: Valor, especifica a matriz que se vai converter
- shallow: Booleano, especifica se se debe reducir só unha dimensión do aniñamento, o valor predeterminado é falso
Resultados de devolución:
- Array, devolve o resultado da conversión
without
Devolve unha matriz que contén un ou máis elementos na matriz arr, excluíndo un ou máis elementos.
1
2static Array util.without(Value arr,
...els);
Parámetros de chamada:
- arr: Valor, especifica a matriz que se vai excluír
- els: ..., especifica un ou máis elementos para excluír
Resultados de devolución:
- Array, devolve resultados excluídos
difference
Devolve unha matriz que contén os elementos da matriz arr excluíndo os elementos da matriz sen.
1
2static Array util.difference(Array list,
...arrs);
Parámetros de chamada:
- list: Matriz, especifica a matriz que se vai excluír
- arrs: ..., especifica unha ou máis matrices para excluír
Resultados de devolución:
- Array, devolve resultados excluídos
each
Percorre todos os elementos da lista e mostra cada elemento en orde. Se se pasa o parámetro de contexto, o iterador está ligado ao obxecto de contexto. Cada vez que se chama iterador, pásanse tres parámetros: (elemento, índice, lista)
1
2
3static Value util.each(Value list,
Function iterator,
Value context = undefined);
Parámetros de chamada:
- list: Valor, especifica a lista ou obxecto que se vai percorrer
- iterator: Función, especifica a función de devolución de chamada utilizada para o percorrido
- context: Valor, especifica o obxecto de contexto ligado ao chamar ao iterador
Resultados de devolución:
- Value, devolve a propia lista
map
Cada valor da lista está asignado a unha nova matriz mediante unha función de transformación (iterador). Se se pasa o parámetro de contexto, o iterador está ligado ao obxecto de contexto. Cada vez que se chama iterador, pásanse tres parámetros: (elemento, índice, lista)
1
2
3static Array util.map(Value list,
Function iterator,
Value context = undefined);
Parámetros de chamada:
- list: Valor, especifica a lista ou o obxecto que se vai transformar
- iterator: Función, especifica a función de devolución de chamada utilizada para a transformación
- context: Valor, especifica o obxecto de contexto ligado ao chamar ao iterador
Resultados de devolución:
- Array, devolve o resultado da transformación
reduce
Reduce os elementos da lista a un único valor. Se se pasa o parámetro de contexto, o iterador está ligado ao obxecto de contexto. Cada vez que se chama a iterador, pásanse tres parámetros: (memo, elemento, índice, lista)
1
2
3
4static Value util.reduce(Value list,
Function iterator,
Value memo,
Value context = undefined);
Parámetros de chamada:
- list: Valor, especifica a lista ou o obxecto que se vai resumir
- iterator: Función, especifica a función de devolución de chamada utilizada para a resolución
- memo: Valor, especifica o valor inicial da redución
- context: Valor, especifica o obxecto de contexto ligado ao chamar ao iterador
Resultados de devolución:
- Value, devolve o resultado resumido
parseArgs
Analiza a cadea da liña de comandos e devolve a lista de parámetros
1static NArray util.parseArgs(String command);
Parámetros de chamada:
- command: String, especifica a cadea de liña de comandos que se vai analizar
Resultados de devolución:
- NArray, devolve a 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 chamada:
- srcname: Cadea, especifique o nome do script que se vai engadir
- script: String, especifica o código de script que se vai compilar
- mode: Número enteiro, modo de compilación, 0: módulo, 1: script, 2: traballador, o valor predeterminado é 0
Resultados de devolución:
- Buffer, devolve o código binario compilado
util.compileOs scripts pódense compilar en bloques de datos en execución internos v8 (código executable non máquina). O código compilado pódese cargar e executar directamente mediante a execución e requirir despois de ser gardado como *.jsc.
Dado que despois da compilación, o código de destino non poderá obter o código fonte inversamente, os programas que dependen de Function.toString non se executarán correctamente.
sync
Envolve as funcións de devolución de chamada ou asíncrona para chamalas de forma sincronizada
1
2static Function util.sync(Function func,
Boolean async_func = false);
Parámetros de chamada:
- func: Función, dada a función que hai que envolver
- async_func: Booleano, especifica que func se procesa como unha función asíncrona. Se é falsa, xulgarase automaticamente.
Resultados de devolución:
- Function, devolve unha función que se executa de forma sincronizada
util.syncProcesa a función de devolución de chamada ou a función asíncrona nunha función de sincronización para facilitar as chamadas.
O exemplo de devolución de chamada é o seguinte:
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 exemplo asíncrono é o seguinte:
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 as funcións de devolución de promesas que non están marcadas como asíncronas, o modo de sincronización pódese 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
Envolver a función de devolución de chamada para a chamada asíncrona
1static Function util.promisify(Function func);
Parámetros de chamada:
- func: Función, dada a función que hai que envolver
Resultados de devolución:
- Function, devolve a función asíncrona
util.promisifyProcesa a función de devolución de chamada como unha función asíncrona para facilitar as chamadas.
O exemplo de devolución de chamada é o seguinte:
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
Envolver función asíncrona para a chamada de devolución de chamada
1static Function util.callbackify(Function func);
Parámetros de chamada:
- func: Función, dada a función que hai que envolver
Resultados de devolución:
- Function, devolver a función de devolución de chamada
util.callbackifyProcesa a función asíncrona nunha función de devolución de chamada para facilitar as chamadas.
Un exemplo asíncrono é o seguinte:
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
Consulta a información actual do motor e da versión dos compoñentes
1static Object util.buildInfo();
Resultados de devolución:
- Object, devolve o obxecto da versión do compoñente
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"
}
}