Mòdul util
El mòdul d'utilitat proporciona funcions d'eines pràctiques com ara el judici del tipus de dades, la còpia d'atributs d'objectes, l'anàlisi de cadenes de plantilles i el processament d'esdeveniments.
La següent és una introducció específica i exemples:
- Determina el tipus de dades:
util.is[type]
aquest mòdul proporciona mètodes com araisDate
,isRegExp
,isError
etc. per determinar el tipus de dades dels paràmetres entrants, per exemple:
1
2
3var util = require('util');
console.log(util.isDate(new Date()));
console.log(util.isRegExp(/some regexp/));
- Còpia de propietats d'objectes:
util.inherits()
aquest mètode pot heretar opcionalment un constructor d'un altre, implementant així l'herència 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);
Utilitzeu Cat
aquest constructor per heretar Animal
les propietats de la instància i les propietats del prototip de , i imprimir Cat
les propietats i els mètodes de la instància.
1
2
3
4var cat = new Cat();
console.log(cat.name);
console.log(cat.eat('fish'));
console.log(cat.sleep());
- util.format() Plantilla de sortida amb format
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'
Els anteriors són util
alguns mètodes comuns de mòduls, que sovint es poden utilitzar per simplificar el procés de desenvolupament real.
objecte
LruCache
Objecte de memòria cau LRU (utilitzat menys recentment), vegeuLruCacheobjecte.
1LruCache util.LruCache;
TextDecoder
TextDecoderobjecte de descodificació, vegeuTextDecoderobjecte.
1TextDecoder util.TextDecoder;
TextEncoder
TextEncoderCodificació d'objectes, vegeuTextEncoderobjecte.
1TextEncoder util.TextEncoder;
types
typesEl mòdul proporciona funcions d'eina per determinar els tipus de dades.
1types util.types;
funció estàtica
format
Formateu les variables segons el format especificat
1
2static String util.format(String fmt,
...args);
Paràmetres de trucada:
- fmt: String, format string
- args: ..., llista de paràmetres opcional
Resultats de retorn:
- String, retorna la cadena amb format
format format variable
1static String util.format(...args);
Paràmetres de trucada:
- args: ..., llista de paràmetres opcional
Resultats de retorn:
- String, retorna la cadena amb format
inherits
Hereta les funcions del prototip d'un constructor a un altre. El prototip del constructor s'establirà en un objecte nou creat a partir de la superclasse (superConstructor).
1
2static util.inherits(Value constructor,
Value superConstructor);
Paràmetres de trucada:
- constructor: Valor, constructor inicial
- superConstructor: Value, la superclasse heretada
inspect
La funció retorna la representació de cadena d'obj, utilitzada principalment per a la depuració. Es poden utilitzar opcions addicionals per canviar certs aspectes de la cadena formatada.
1
2static String util.inspect(Value obj,
Object options = {});
Paràmetres de trucada:
- obj: Valor, especifica l'objecte a processar
- options: Objecte, especifica les opcions de control de format
Resultats de retorn:
- String, retorna la cadena amb format
S'admeten els paràmetres següents:
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ó donada. Aquesta funció només és compatible i no genera advertències.
1
2
3static Function util.deprecate(Function fn,
String msg,
String code = "");
Paràmetres de trucada:
- fn: Funció, donada la funció que cal encapsular
- msg: Cadena, missatge d'avís donat
- code: Cadena, número d'avís donat
Resultats de retorn:
- Function, si el resultat de l'encapsulació
isEmpty
Comprova si la variable donada no conté cap valor (no hi ha propietats enumerables)
1static Boolean util.isEmpty(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si està buit
isArray
Comprova si la variable donada és una matriu
1static Boolean util.isArray(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és una matriu
isBoolean
Comprova si la variable donada és booleana
1static Boolean util.isBoolean(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és booleà, retorna True
isNull
Comprova si la variable donada és nul·la
1static Boolean util.isNull(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és nul, retorna True
isNullOrUndefined
Comprova si la variable donada és nul·la o no definida
1static Boolean util.isNullOrUndefined(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és nul o no definit, retorna True
isNumber
Comprova si la variable donada és un nombre
1static Boolean util.isNumber(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és un número
isBigInt
Comprova si la variable donada és un BigInt
1static Boolean util.isBigInt(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és un número
isString
Comprova si la variable donada és una cadena
1static Boolean util.isString(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és una cadena
isUndefined
Comprova si la variable donada no és definida
1static Boolean util.isUndefined(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si no és definit, retorna True
isRegExp
Comprova si la variable donada és un objecte normal
1static Boolean util.isRegExp(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és un objecte normal
isObject
Comprova si la variable donada és un objecte
1static Boolean util.isObject(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és un objecte
isDate
Comprova si la variable donada és un objecte de data
1static Boolean util.isDate(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és un objecte de data
isNativeError
Comprova si la variable donada és un objecte d'error
1static Boolean util.isNativeError(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és un objecte d'error
isPrimitive
Comprova si la variable donada és de tipus primitiu
1static Boolean util.isPrimitive(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és un tipus primitiu
isSymbol
Comproveu si la variable donada és del tipus Símbol
1static Boolean util.isSymbol(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és un tipus de símbol, retorna True
isDataView
Comprova si la variable donada és del tipus DataView
1static Boolean util.isDataView(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és un tipus DataView, retorna True
isExternal
Comprova si la variable donada és de tipus Externa
1static Boolean util.isExternal(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és un tipus extern, retorna True
isMap
Comproveu si la variable donada és del tipus Map
1static Boolean util.isMap(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és un tipus de mapa, retorna True
isMapIterator
Comprova si la variable donada és del tipus MapIterator
1static Boolean util.isMapIterator(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és un tipus MapIterator
isPromise
Comprova si la variable donada és del tipus Promesa
1static Boolean util.isPromise(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és un tipus Promesa, retorna True
isAsyncFunction
Comprova si la variable donada és del tipus AsyncFunction
1static Boolean util.isAsyncFunction(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és un tipus AsyncFunction, retorna True
isSet
Comprova si la variable donada és del tipus Set
1static Boolean util.isSet(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és un tipus Set, retorna True
isSetIterator
Comprova si la variable donada és del tipus SetIterator
1static Boolean util.isSetIterator(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és un tipus SetIterator, retorna True
isTypedArray
Comprova si la variable donada és del tipus TypedArray
1static Boolean util.isTypedArray(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és un tipus TypedArray, retorna True
isUint8Array
Comprova si la variable donada és del tipus Uint8Array
1static Boolean util.isUint8Array(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és de tipus Uint8Array
isFunction
Comprova si la variable donada és un objecte de funció
1static Boolean util.isFunction(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, retorna True si és un objecte de funció
isBuffer
Comprova si la variable donada és una funcióBufferobjecte
1static Boolean util.isBuffer(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a detectar
Resultats de retorn:
- Boolean, si és una funcióBufferL'objecte retorna True
isDeepEqual
La profunditat del valor de prova és igual al valor esperat
1
2static Boolean util.isDeepEqual(Value actual,
Value expected);
Paràmetres de trucada:
- actual: Valor, el valor a provar
- expected: Valor, valor esperat
Resultats de retorn:
- Boolean, retorna True si les profunditats són iguals
has
Consulta si l'objecte especificat conté la clau donada
1
2static Boolean util.has(Value v,
String key);
Paràmetres de trucada:
- v: Valor, donat l'objecte a consultar
- key: Cadena, especifiqueu la clau a consultar
Resultats de retorn:
- Boolean, retorna una matriu de totes les claus de l'objecte
keys
Consulta totes les matrius de claus de l'objecte especificat
1static Array util.keys(Value v);
Paràmetres de trucada:
- v: Valor, donat l'objecte a consultar
Resultats de retorn:
- Array, retorna una matriu de totes les claus de l'objecte
values
Consulta totes les matrius de valors de l'objecte especificat
1static Array util.values(Value v);
Paràmetres de trucada:
- v: Valor, donat l'objecte a consultar
Resultats de retorn:
- Array, retorna una matriu de tots els valors de l'objecte
clone
Clonar la variable donada, si és un objecte o matriu, copieu el contingut al nou objecte
1static Value util.clone(Value v);
Paràmetres de trucada:
- v: Valor, donada la variable a clonar
Resultats de retorn:
- Value, retorna el resultat del clon
deepFreeze
Congela un objecte. No es permetrà modificar l'objecte congelat ni els objectes que conté.
1static util.deepFreeze(Value v);
Paràmetres de trucada:
- v: Valor, especifica l'objecte a congelar
extend
Amplieu els valors clau d'un o més objectes a l'objecte especificat
1
2static Value util.extend(Value v,
...objs);
Paràmetres de trucada:
- v: Valor, especifica l'objecte a ampliar
- objs: ..., especifica un o més objectes per a l'expansió
Resultats de retorn:
- Value, retorna el resultat ampliat
_extend
Amplieu els valors clau d'un o més objectes a l'objecte especificat, que és un àlies d'extensió
1
2static Value util._extend(Value v,
...objs);
Paràmetres de trucada:
- v: Valor, especifica l'objecte a ampliar
- objs: ..., especifica un o més objectes per a l'expansió
Resultats de retorn:
- Value, retorna el resultat ampliat
pick
Torna aobjectCopieu, filtreu només els valors d'atribut de la clau especificada
1
2static Object util.pick(Value v,
...objs);
Paràmetres de trucada:
- v: Valor, especifica l'objecte a filtrar
- objs: ..., especifiqueu una o més claus per a la selecció
Resultats de retorn:
- Object, retorna resultats filtrats
omit
Torna aobjectCopia, només excloent el valor de l'atribut de la clau especificada
1
2static Object util.omit(Value v,
...keys);
Paràmetres de trucada:
- v: Valor, especifica l'objecte a filtrar
- keys: ..., especifiqueu una o més claus per a l'exclusió
Resultats de retorn:
- Object, retorna resultats exclosos
first
Obteniu el primer element de la matriu
1static Value util.first(Value v);
Paràmetres de trucada:
- v: Valor, donat la matriu que es vol obtenir
Resultats de retorn:
- Value, retorna l'element recuperat
Obteniu els primers múltiples elements d'una matriu
1
2static Value util.first(Value v,
Integer n);
Paràmetres de trucada:
- v: Valor, donat la matriu que es vol obtenir
- n: Enter, especifica el nombre d'elements a obtenir
Resultats de retorn:
- Value, retorna la matriu d'elements obtinguda
last
Obteniu l'últim element de la matriu
1static Value util.last(Value v);
Paràmetres de trucada:
- v: Valor, donat la matriu que es vol obtenir
Resultats de retorn:
- Value, retorna l'element recuperat
Obteniu diversos elements al final d'una matriu
1
2static Value util.last(Value v,
Integer n);
Paràmetres de trucada:
- v: Valor, donat la matriu que es vol obtenir
- n: Enter, especifica el nombre d'elements a obtenir
Resultats de retorn:
- Value, retorna la matriu d'elements obtinguda
unique
Obteniu una còpia desduplicada dels elements d'una matriu
1
2static Array util.unique(Value v,
Boolean sorted = false);
Paràmetres de trucada:
- v: Valor, donat la matriu que s'ha de duplicar
- sorted: Booleà, especifica si la matriu està ordenada. Si la matriu està ordenada, s'utilitzarà un algorisme ràpid.
Resultats de retorn:
- Array, retorna la matriu després d'eliminar els elements duplicats
union
Combina els valors d'una o més matrius en una matriu amb valors únics
1static Array util.union(...arrs);
Paràmetres de trucada:
- arrs: ..., especifiqueu una o més matrius per a la fusió
Resultats de retorn:
- Array, retorna el resultat combinat
intersection
Retorna la intersecció de la matriu que conté arr excloent un o més elements de la matriu.
1static Array util.intersection(...arrs);
Paràmetres de trucada:
- arrs: ..., especifiqueu una o més matrius utilitzades per calcular la intersecció
Resultats de retorn:
- Array, retorna el resultat del càlcul de la intersecció
flatten
Converteix una matriu amb diversos nivells de nidificació (la nidificació pot ser qualsevol nombre de nivells) en una matriu amb un sol nivell. Si passeu el paràmetre poc profund, la matriu es reduirà a només una dimensió d'imbricació.
1
2static Array util.flatten(Value arr,
Boolean shallow = false);
Paràmetres de trucada:
- arr: Valor, especifica la matriu que s'ha de convertir
- shallow: Booleà, especifica si s'ha de reduir només una dimensió de l'imbricació, el valor per defecte és fals
Resultats de retorn:
- Array, retorna el resultat de la conversió
without
Retorna una matriu que conté un o més elements a la matriu arr, excloent un o més elements.
1
2static Array util.without(Value arr,
...els);
Paràmetres de trucada:
- arr: Valor, especifica la matriu que s'ha d'excloure
- els: ..., especifica un o més elements a excloure
Resultats de retorn:
- Array, retorna resultats exclosos
difference
Retorna una matriu que conté els elements de la matriu arr, excloent els elements de la matriu sense.
1
2static Array util.difference(Array list,
...arrs);
Paràmetres de trucada:
- list: Matriu, especifica la matriu que s'ha d'excloure
- arrs: ..., especifica una o més matrius per excloure
Resultats de retorn:
- Array, retorna resultats exclosos
each
Travessa tots els elements de la llista i envia cada element en ordre. Si es passa el paràmetre de context, l'iterador s'enllaça a l'objecte de context. Cada vegada que es crida l'iterador, es passen tres paràmetres: (element, índex, llista)
1
2
3static Value util.each(Value list,
Function iterator,
Value context = undefined);
Paràmetres de trucada:
- list: Valor, especifica la llista o l'objecte que cal recórrer
- iterator: Funció, especifica la funció de devolució de trucada utilitzada per al recorregut
- context: Valor, especifica l'objecte de context lligat en cridar l'iterador
Resultats de retorn:
- Value, retorna la pròpia llista
map
Cada valor de la llista s'assigna a una matriu nova mitjançant una funció de transformació (iterador). Si es passa el paràmetre de context, l'iterador s'enllaça a l'objecte de context. Cada vegada que es crida l'iterador, es passen tres paràmetres: (element, índex, llista)
1
2
3static Array util.map(Value list,
Function iterator,
Value context = undefined);
Paràmetres de trucada:
- list: Valor, especifica la llista o l'objecte a transformar
- iterator: Funció, especifica la funció de devolució de trucada utilitzada per a la transformació
- context: Valor, especifica l'objecte de context lligat en cridar l'iterador
Resultats de retorn:
- Array, retorna el resultat de la transformació
reduce
Reduïu els elements de la llista a un sol valor. Si es passa el paràmetre de context, l'iterador s'enllaça a l'objecte de context. Cada vegada que es crida l'iterador, es passen tres paràmetres: (memo, element, índex, llista)
1
2
3
4static Value util.reduce(Value list,
Function iterator,
Value memo,
Value context = undefined);
Paràmetres de trucada:
- list: Valor, especifica la llista o l'objecte a resumir
- iterator: Funció, especifica la funció de devolució de trucada utilitzada per a la resolució
- memo: Valor, especifica el valor inicial de la reducció
- context: Valor, especifica l'objecte de context lligat en cridar l'iterador
Resultats de retorn:
- Value, retorna el resultat resumit
parseArgs
Analitzeu la cadena de la línia d'ordres i retorneu la llista de paràmetres
1static NArray util.parseArgs(String command);
Paràmetres de trucada:
- command: String, especifica la cadena de línia d'ordres que s'ha d'analitzar
Resultats de retorn:
- NArray, retorna la llista de paràmetres analitzats
compile
Compilar l'script a codi binari
1
2
3static Buffer util.compile(String srcname,
String script,
Integer mode = 0);
Paràmetres de trucada:
- srcname: Cadena, especifiqueu el nom de l'script que cal afegir
- script: String, especifica el codi d'script que s'ha de compilar
- mode: Enter, mode de compilació, 0: mòdul, 1: script, 2: treballador, el valor per defecte és 0
Resultats de retorn:
- Buffer, retorna el codi binari compilat
util.compileEls scripts es poden compilar en blocs de dades d'execució interns de la v8 (codi executable que no sigui de màquina). El codi compilat es pot carregar i executar directament mitjançant l'execució i requereix després de ser desat com a *.jsc.
Com que després de la compilació, el codi de destinació no podrà obtenir el codi font inversament, els programes que es basen en Function.toString no s'executaran correctament.
sync
Embolcalla les funcions de devolució de trucada o asíncrona per trucar-les de forma sincrònica
1
2static Function util.sync(Function func,
Boolean async_func = false);
Paràmetres de trucada:
- func: Funció, donada la funció que cal embolicar
- async_func: Booleà, especifica que func es processa com una funció asíncrona. Si és fals, es valorarà automàticament.
Resultats de retorn:
- Function, retorna una funció que s'executa de manera sincrònica
util.syncProcessa la funció de devolució de trucada o la funció asíncrona en una funció de sincronització per facilitar la trucada.
L'exemple de devolució de trucada és el següent:
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 exemple asíncron és el següent:
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));
Per a les funcions de retorn de promeses que no estan marcades com a sincronitzades, el mode de sincronització es pot especificar manualment:
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ó de retorn de trucada per a una trucada asíncrona
1static Function util.promisify(Function func);
Paràmetres de trucada:
- func: Funció, donada la funció que cal embolicar
Resultats de retorn:
- Function, retorna la funció asíncrona
util.promisifyProcessa la funció de devolució de trucada com una funció asíncrona per facilitar la trucada.
L'exemple de devolució de trucada és el següent:
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ó d'embolcall asíncrona per a la trucada de retorn de trucada
1static Function util.callbackify(Function func);
Paràmetres de trucada:
- func: Funció, donada la funció que cal embolicar
Resultats de retorn:
- Function, retorna la funció de devolució de trucada
util.callbackifyProcessa la funció asíncrona en una funció de devolució de trucada per facilitar la trucada.
Un exemple asíncron és el següent:
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
Consulteu la informació actual del motor i de la versió del component
1static Object util.buildInfo();
Resultats de retorn:
- Object, retorna l'objecte de versió del component
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"
}
}