Този модул с общо предназначение съдържа много полезни помощни функции, които могат да ви спестят усилията за писане на допълнителен код.
Модулът util предоставя набор от помощни програми, които можете да използвате за отстраняване на грешки, проверка и форматиране на данни в приложения Node.js.
Разгледайте различните функции на модула util и разгледайте някои примери, които да ви помогнат да използвате тези инструменти.
Регистриране с повече удобство
Регистрирането се отнася до записване на важна информация или събития, като стойности на променливи, съобщения за грешка и поток на изпълнение, които се случват в рамките на софтуерно приложение. Регистрирането служи за множество цели, включително отстраняване на грешки, наблюдение и одит.
Помощният модул Node.js предоставя удобен механизъм за регистриране, използвайки util.debuglog метод. Тя ви позволява да създавате функции за регистриране на грешки с пространство от имена и можете да ги активирате или деактивирате, като зададете NODE_DEBUG променлива на средата. Ето един пример:
// index.js
конст util = изискват("полезен");конст отстраняване на грешки = util.debuglog("myapp"); // инициализиране на регистъра за отстраняване на грешки
отстраняване на грешки („Това е съобщение за отстраняване на грешки“); // MYAPP 39668: Това е съобщение за отстраняване на грешки
Този пример показва как можете да зададете обикновен регистратор за отстраняване на грешки в пространство от имена „myapp“ и да регистрирате съобщение и неговия идентификатор на процес в конзолата.
За да активирате регистрационните файлове за отстраняване на грешки, задайте NODE_DEBUG променлива на средата към пространството от имена, когато стартирате скрипта:
NODE_DEBUG=myapp възел index.js
Ако искате да активирате множество пространства от имена за отстраняване на грешки, добавете запетая, за да разделите пространствата от имена:
NODE_DEBUG=myapp, myapp2,myapp3 възел index.js
Ако не включите пространство от имена в NODE_DEBUG променлива на средата, извикванията на debuglog ще игнорират това пространство от имена.
The util.debuglog предоставя полезна функционалност, но ако приложението ви изисква по-сложно регистриране, можете да използвате един от другите стабилни пакети за регистриране в екосистемата Node.js.
Обещаващи функции за гъвкавост
Обещанията в JavaScript предоставят начин за обработка на асинхронен код по по-структуриран и управляем начин начин, като ви позволява да свързвате верижни операции, да обработвате отделно грешки и успешни събития и да избягвате обратно извикване по дяволите
Въпреки това, не всички вградени функции поддържат обещания. Можете обаче да „обещавате“ функции, които използват традиционни обратни извиквания, за да им позволите да поддържат обещания с модула util util.promisify метод.
Този метод приема функция, която използва традиционната система за обратно извикване, и връща функция, която използва обещания.
Например:
конст util = изискват("полезен");
// Версия за обратно извикване
функцияcallbackFunction(arg1, arg2, обратно извикване) {
// Асинхронна операция
// Извикване на обратно извикване с грешка (ако има такава) и резултат
}// Promisify callbackFunction
конст callbackFunctionPromise = util.promisify (callbackFunction);
// Обещана версия
callbackFunctionPromise (arg1, arg2)
.тогава((резултат) => {
// Резултат от обработката
})
.catch((грешка) => {
// Обработване на грешка
});
В примера по-горе, util.promisify метод преобразува версията за обратно извикване на функцията във версия, която използва обещания.
Това преобразуване ви позволява да използвате верига тогава и улов блокове, използване опитай да хванеши управлявайте по-добре своя асинхронен код.
Форматиране на низове с познат метод
Node.js util модул предоставя функция за форматиране, наречена util.format който ви позволява да създавате форматирани низове. Този метод работи подобно на на printf функция в bash и други езици за програмиране като C и C++.
The util.format() методът приема форматиращ низ, който може да съдържа нула или повече спецификатори на формат, като напр %с (струни), %д (числа), като аргумент. Той също така приема произволен брой стойности, които ще заменят съответните им спецификатори.
Например:
конст util = изискват("полезен");
конст име = "Бони";
конст възраст = 30;конст formattedString = util.format(
„Казвам се %s и съм на %d години.“,
име,
възраст
);
конзола.log (форматиран низ); // Казвам се Бони и съм на 30 години.
Този пример използва форматиращ низ с два контейнера: %с и %д. The %с контейнерът е за заместване на низ, докато %д е за цифрово заместване. Извикването на util.format предава съответните стойности—име и възраст— за всеки заместител.
Ако спецификаторът няма съответен аргумент, util.format методът няма да го замени и ще върне низа, без да го променя:
конст util = изискват("полезен");
конст formattedString = util.format(„Казвам се %s“);
конзола.log (форматиран низ); // Името ми е %s
Този пример извиква format само с един аргумент, така че методът връща оригиналния низ.
Има много други приложения на модула Util
Освен тези употреби, помощният модул Node.js предлага други помощни функции. Примерите включват проверка на обекти и стойности и отхвърляне на остарели инструменти.
Като се възползвате от функционалността, предоставена от модула util, можете да подобрите четливостта и поддръжката на вашия код и цялостния ви работен процес.