Denna allmänna modul innehåller många användbara verktygsfunktioner som kan spara dig ansträngningen att skriva extra kod.

util-modulen tillhandahåller en uppsättning verktyg som du kan använda för att felsöka, inspektera och formatera data i Node.js-applikationer.

Fördjupa dig i de olika funktionerna i util-modulen och utforska några exempel som hjälper dig att utnyttja dessa verktyg.

Logga med mer bekvämlighet

Loggning avser att registrera viktig information eller händelser, såsom variabla värden, felmeddelanden och exekveringsflöde, som inträffar i en mjukvaruapplikation. Loggning tjänar flera syften, inklusive felsökning, övervakning och revision.

Node.js util-modulen tillhandahåller en bekväm loggningsmekanism med hjälp av util.debuglog metod. Det låter dig skapa felsökningsloggningsfunktioner med ett namnområde, och du kan aktivera eller inaktivera dem genom att ställa in NODE_DEBUG miljöfaktor. Här är ett exempel:

// index.js
konst util = behöva("utnyttja");

konst debug = util.debuglog("minapp"); // initiera felsökningslogger

instagram viewer

felsöka("Detta är ett felsökningsmeddelande"); // MYAPP 39668: Detta är ett felsökningsmeddelande

Det här exemplet visar hur du kan ställa in en enkel felsökningslogger i ett "myapp"-namnområde och logga ett meddelande och dess process-ID till konsolen.

För att aktivera felsökningsloggarna, ställ in NODE_DEBUG miljövariabel till namnområdet när du kör skriptet:

NODE_DEBUG=minappnod index.js

Om du vill aktivera flera felsökningsnamnområden, lägg till ett kommatecken för att separera namnområdena:

NODE_DEBUG=minapp, minapp2,minapp3 nodindex.js

Om du inte inkluderar ett namnområde i NODE_DEBUG miljövariabel, kommer anrop till debuglog att ignorera det namnområdet.

De util.debuglog metod ger användbar funktionalitet, men om din app kräver mer komplex loggning kan du använda en av de andra robusta loggningspaket i Node.js-ekosystemet.

Lovande funktioner för flexibilitet

Löften i JavaScript ger ett sätt att hantera asynkron kod på ett mer strukturerat och hanterbart sätt sätt genom att låta dig sammankoppla operationer, hantera fel och framgångshändelser separat och undvika återuppringning Helvete.

Även om inte alla inbyggda funktioner stöder löften. Du kan dock "lova" funktioner som använder traditionella återuppringningar för att göra det möjligt för dem att stödja löften med util-modulens util.promisify metod.

Denna metod tar en funktion som använder det traditionella callback-systemet och returnerar en funktion som använder löften.

Till exempel:

konst util = behöva("utnyttja");

// Återuppringningsversion
fungeraåteruppringningsfunktion(arg1, arg2, återuppringning) {
// Asynkron drift
// Anropa återuppringning med fel (om något) och resultat
}

// Promisify callbackFunction
konst callbackFunctionPromise = util.promisify (callbackFunction);

// Utlovad version
callbackFunctionPromise (arg1, arg2)
.sedan((resultat) => {
// Processresultat
})
.fånga((fel) => {
// Hanteringsfel
});

I exemplet ovan är util.promisify metod konverterade callback-versionen av funktionen till en version som använder löften.

Denna konvertering gör att du kan använda kedja sedan och fånga block, använd försök fånga, och hantera din asynkrona kod bättre.

Formatera strängar med en bekant metod

Node.js util modulen tillhandahåller en formateringsfunktion som kallas util.format som låter dig skapa formaterade strängar. Denna metod fungerar på samma sätt som de printf funktion i bash och andra programmeringsspråk som C och C++.

De util.format() metoden tar en formatsträng som kan innehålla noll eller fler formatspecifikationer, som t.ex %s (strängar), %d (siffror), som ett argument. Det krävs också ett godtyckligt antal värden som kommer att ersätta deras motsvarande specifikationer.

Till exempel:

konst util = behöva("utnyttja");

konst namn = "Bonnie";
konst ålder = 30;

konst formattedString = util.format(
"Jag heter %s och jag är %d år gammal.",
namn,
ålder
);

trösta.log (formaterad sträng); // Jag heter Bonnie, och jag är 30 år gammal.

Det här exemplet använder en formatsträng med två platshållare: %s och %d. De %s platshållare är för strängersättning, while %d är för numerisk substitution. Anropet till util.format skickar motsvarande värden—namn och ålder— för varje platshållare.

Om en specificator inte har ett motsvarande argument, util.format metod kommer inte att ersätta den, och kommer att returnera strängen utan att ändra den:

konst util = behöva("utnyttja");

konst formattedString = util.format("Jag heter %s");
trösta.log (formaterad sträng); // Mitt namn är %s

Det här exemplet anropar format med bara ett enda argument, så metoden returnerar den ursprungliga strängen.

Det finns många fler användningsområden för Util-modulen

Förutom dessa användningar erbjuder Node.js util-modulen andra verktygsfunktioner. Exempel inkluderar inspektion av objekt och värden och utfasning av föråldrade verktyg.

Genom att utnyttja funktionaliteten som tillhandahålls av util-modulen kan du förbättra läsbarheten och underhållbarheten för din kod och ditt övergripande arbetsflöde.