Módulo módulo básico

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:

  1. Determinar o tipo de datos: util.is[type] este módulo proporciona métodos como isDate, isRegExp, isErroretc. para determinar o tipo de datos dos parámetros entrantes, por exemplo:
1 2 3
var util = require('util'); console.log(util.isDate(new Date())); console.log(util.isRegExp(/some regexp/));
  1. 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 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);

Use Cateste construtor para herdar Animalas propiedades da instancia e as propiedades do prototipo de , e imprimir Catas propiedades e os métodos da 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() Modelo de saída con formato
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'

Os anteriores son utilalgú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.

1
LruCache util.LruCache;

TextDecoder

TextDecoderobxecto de decodificación, véxTextDecoderobxecto.

1
TextDecoder util.TextDecoder;

TextEncoder

TextEncoderCodificación de obxectos, verTextEncoderobxecto.

1
TextEncoder util.TextEncoder;

types

typesO módulo ofrece funcións de ferramentas para determinar tipos de datos.

1
types util.types;

función estática

format

Formatear as variables segundo o formato especificado

1 2
static 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

1
static 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 2
static 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 2
static 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 3
static 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)

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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 2
static 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 2
static 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

1
static 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

1
static 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

1
static 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.

1
static 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 2
static 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 2
static 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 2
static 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 2
static 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

1
static 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 2
static 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

1
static 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 2
static 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 2
static 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

1
static 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.

1
static 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 2
static 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 2
static 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 2
static 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 3
static 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 3
static 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 4
static 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

1
static 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 3
static 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 2
static 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

1
static 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

1
static 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

1
static 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" } }