Tento modul pro všeobecné použití obsahuje mnoho užitečných funkcí, které vám mohou ušetřit námahu při psaní kódu navíc.
Modul util poskytuje sadu nástrojů, které můžete použít k ladění, kontrole a formátování dat v aplikacích Node.js.
Ponořte se do různých funkcí modulu util a prozkoumejte několik příkladů, které vám pomohou tyto nástroje využít.
Logování s větším pohodlím
Protokolování se týká zaznamenávání důležitých informací nebo událostí, jako jsou hodnoty proměnných, chybové zprávy a tok provádění, ke kterým dochází v rámci softwarové aplikace. Protokolování slouží více účelům, včetně ladění, monitorování a auditování.
Modul Node.js util poskytuje pohodlný mechanismus protokolování pomocí util.debuglog metoda. Umožňuje vám vytvářet funkce protokolování ladění pomocí jmenného prostoru a můžete je povolit nebo zakázat nastavením NODE_DEBUG proměnná prostředí. Zde je příklad:
// index.js
konst util = vyžadovat("utilita");konst debug = util.debuglog("moje aplikace"); // inicializuje ladicí záznamník
ladit("Toto je ladicí zpráva"); // MYAPP 39668: Toto je ladicí zpráva
Tento příklad ukazuje, jak můžete nastavit jednoduchý protokolovač ladění ve jmenném prostoru „myapp“ a protokolovat zprávu a její ID procesu do konzoly.
Chcete-li povolit protokoly ladění, nastavte NODE_DEBUG proměnnou prostředí do jmenného prostoru při spuštění skriptu:
NODE_DEBUG=myapp node index.js
Pokud chcete povolit více jmenných prostorů pro ladění, oddělte jmenné prostory čárkou:
NODE_DEBUG=moje aplikace, mojeaplikace2,mojeaplikace3 uzel index.js
Pokud do souboru nezahrnete jmenný prostor NODE_DEBUG proměnná prostředí, volání debuglogu budou tento jmenný prostor ignorovat.
The util.debuglog metoda poskytuje užitečné funkce, ale pokud vaše aplikace vyžaduje složitější protokolování, můžete použít jednu z dalších robustních protokolování balíčků v ekosystému Node.js.
Příslib funkcí pro flexibilitu
Sliby v JavaScriptu poskytují způsob, jak zpracovat asynchronní kód strukturovaněji a lépe spravovatelný tím, že vám umožní řetězit operace, samostatně zpracovávat chyby a události úspěchu a vyhnout se zpětnému volání peklo.
Ačkoli ne všechny vestavěné funkce podporují sliby. Můžete však „slíbit“ funkce, které používají tradiční zpětná volání, abyste jim umožnili podporovat sliby pomocí modulu util využít.slibovat metoda.
Tato metoda přebírá funkci, která používá tradiční systém zpětného volání, a vrací funkci, která používá sliby.
Například:
konst util = vyžadovat("utilita");
// Verze zpětného volání
funkcefunkce zpětného volání(arg1, arg2, zpětné volání) {
// Asynchronní operace
// Vyvolá zpětné volání s chybou (pokud existuje) a výsledkem
}// Slíbení funkce zpětného volání
konst callbackFunctionPromise = util.promisify (callbackFunction);
// Slíbená verze
callbackFunctionPromise (arg1, arg2)
.pak((výsledek) => {
// Výsledek zpracování
})
.chytit((chyba) => {
// Chyba zpracování
});
Ve výše uvedeném příkladu je využít.slibovat metoda převedla zpětné volání verze funkce na verzi, která používá sliby.
Tato konverze vám umožňuje používat řetěz pak a chytit bloky, použití Zkus chytita lépe spravovat svůj asynchronní kód.
Formátování řetězců známou metodou
Soubor Node.js util modul poskytuje funkci formátování tzv util.format který umožňuje vytvářet formátované řetězce. Tato metoda funguje podobně jako a printf funkce v bash a další programovací jazyky jako C a C++.
The util.format() metoda přebírá formátovací řetězec, který může obsahovat nula nebo více specifikátorů formátu, jako např %s (struny), %d (čísla), jako argument. Vyžaduje také libovolný počet hodnot, které nahradí jejich odpovídající specifikátory.
Například:
konst util = vyžadovat("utilita");
konst jméno = "Bonnie";
konst věk = 30;konst formattedString = util.format(
"Jmenuji se %s a je mi %d let.",
název,
stáří
);
řídicí panel.log (formattedString); // Jmenuji se Bonnie a je mi 30 let.
Tento příklad používá formátovací řetězec se dvěma zástupnými symboly: %s a %d. The %s zástupný symbol je pro substituci řetězce, zatímco %d je pro numerickou substituci. Volání util.format předává odpovídající hodnoty –název a stáří—pro každý zástupný symbol.
Pokud specifikátor nemá odpovídající argument, util.format metoda jej nenahradí a vrátí řetězec, aniž by jej změnil:
konst util = vyžadovat("utilita");
konst formattedString = util.format("Jmenuji se %s");
řídicí panel.log (formattedString); // Jmenuji se %s
Tento příklad volá format pouze s jedním argumentem, takže metoda vrátí původní řetězec.
Modul Util má mnohem více využití
Kromě těchto použití nabízí modul Node.js util další funkce. Mezi příklady patří kontrola objektů a hodnot a zastarávání zastaralých nástrojů.
Využitím funkcí poskytovaných modulem util můžete zlepšit čitelnost a udržovatelnost kódu a celkový pracovní postup.