Este módulo de propósito geral contém muitas funções utilitárias úteis que podem poupar o esforço de escrever código extra.

O módulo util fornece um conjunto de utilitários que você pode usar para depurar, inspecionar e formatar dados em aplicativos Node.js.

Aprofunde-se nas diferentes funções do módulo util e explore alguns exemplos para ajudá-lo a aproveitar essas ferramentas.

Registrando com mais conveniência

Logging refere-se ao registro de informações ou eventos importantes, como valores de variáveis, mensagens de erro e fluxo de execução, que ocorrem em um aplicativo de software. O log atende a várias finalidades, incluindo depuração, monitoramento e auditoria.

O módulo utilitário Node.js fornece um mecanismo de registro conveniente usando o util.debuglog método. Ele permite criar funções de log de depuração com um namespace e você pode ativá-las ou desativá-las definindo o NODE_DEBUG variável de ambiente. Aqui está um exemplo:

// index.js
const util = exigir("útil");

const debug = util.debuglog("meu aplicativo"); // inicializa o registrador de depuração

instagram viewer

depurar("Esta é uma mensagem de depuração"); // MYAPP 39668: Esta é uma mensagem de depuração

Este exemplo mostra como você pode definir um logger de depuração simples, em um namespace “myapp”, e registrar uma mensagem e seu ID de processo no console.

Para habilitar os logs de depuração, defina o NODE_DEBUG variável de ambiente para o namespace ao executar o script:

NODE_DEBUG=myapp node index.js

Se você deseja habilitar vários namespaces de depuração, adicione uma vírgula para separar os namespaces:

NODE_DEBUG=myapp, myapp2,myapp3 node index.js

Se você não incluir um namespace no NODE_DEBUG variável de ambiente, as chamadas para debuglog irão ignorar esse namespace.

O util.debuglog O método fornece funcionalidade útil, mas se seu aplicativo requer registro mais complexo, você pode usar um dos outros robustos registrando pacotes no ecossistema Node.js.

Funções promissoras para flexibilidade

As promessas em JavaScript fornecem uma maneira de lidar com código assíncrono de maneira mais estruturada e gerenciável. maneira permitindo encadear operações, lidar com erros e eventos de sucesso separadamente e evitar retorno de chamada inferno.

Embora nem todas as funções embutidas suportem promessas. No entanto, você pode “promisificar” funções que usam retornos de chamada tradicionais para permitir que suportem promessas com o módulo util util.promisify método.

Esse método usa uma função que usa o sistema tradicional de retorno de chamada e retorna uma função que usa promessas.

Por exemplo:

const util = exigir("útil");

// versão de retorno
funçãocallbackFunction(arg1, arg2, retorno de chamada) {
// Operação assíncrona
// Chama o retorno de chamada com erro (se houver) e resultado
}

// Promete callbackFunction
const callbackFunctionPromise = util.promisify (callbackFunction);

// Versão prometida
callbackFunctionPromise (arg1, arg2)
.então((resultado) => {
// Processar resultado
})
.pegar((erro) => {
// Trata o erro
});

No exemplo acima, o util.promisify O método converteu a versão de retorno de chamada da função em uma versão que usa promessas.

Esta conversão permite que você use cadeia então e pegar blocos, usar tentativa de capturae gerencie melhor seu código assíncrono.

Formatando strings com um método familiar

O Node.js útil O módulo fornece uma função de formatação chamada util.format que permite criar strings formatadas. Este método funciona de forma semelhante a o printf função no bash e outras linguagens de programação como C e C++.

O util.format() O método usa uma string de formato que pode conter zero ou mais especificadores de formato, como %s (cordas), %d (números), como um argumento. Também leva um número arbitrário de valores que substituirão seus especificadores correspondentes.

Por exemplo:

const util = exigir("útil");

const nome = "Bonnie";
const idade = 30;

const formattedString = util.format(
"Meu nome é %s e tenho %d anos.",
nome,
idade
);

console.log (formattedString); // Meu nome é Bonnie e tenho 30 anos.

Este exemplo usa uma string de formato com dois espaços reservados: %s e %d. O %s espaço reservado é para substituição de string, enquanto %d é para substituição numérica. A chamada para util.format passa os valores correspondentes—nome e idade— para cada espaço reservado.

Se um especificador não tiver um argumento correspondente, o util.format O método não irá substituí-lo e retornará a string sem alterá-la:

const util = exigir("útil");

const formattedString = util.format("Meu nome é S");
console.log (formattedString); // Meu nome é S

Este exemplo chama format com apenas um único argumento, então o método retorna a string original.

Existem muitos outros usos do módulo Util

Além desses usos, o módulo util Node.js oferece outras funções utilitárias. Os exemplos incluem inspecionar objetos e valores e depreciar ferramentas desatualizadas.

Aproveitando a funcionalidade fornecida pelo módulo util, você pode melhorar a legibilidade e manutenção de seu código e seu fluxo de trabalho geral.