Este módulo de propósito general contiene muchas funciones de utilidad útiles que pueden ahorrarle el esfuerzo de escribir código adicional.
El módulo util proporciona un conjunto de utilidades que puede usar para depurar, inspeccionar y formatear datos en aplicaciones Node.js.
Profundice en las diferentes funciones del módulo util y explore algunos ejemplos para ayudarlo a aprovechar estas herramientas.
Iniciar sesión con más comodidad
El registro se refiere al registro de información o eventos importantes, como valores de variables, mensajes de error y flujo de ejecución, que ocurren dentro de una aplicación de software. El registro sirve para múltiples propósitos, incluida la depuración, el monitoreo y la auditoría.
El módulo de utilidad de Node.js proporciona un mecanismo de registro conveniente utilizando el util.debuglog método. Le permite crear funciones de registro de depuración con un espacio de nombres, y puede habilitarlas o deshabilitarlas configurando el NODO_DEBUG Variable ambiental. Aquí hay un ejemplo:
// índice.js
constante útil = requerir("útil");constante depuración = util.debuglog("miaplicacion"); // inicializa el registrador de depuración
depurar("Este es un mensaje de depuración"); // MYAPP 39668: Este es un mensaje de depuración
Este ejemplo muestra cómo puede configurar un registrador de depuración simple, en un espacio de nombres "myapp", y registrar un mensaje y su ID de proceso en la consola.
Para habilitar los registros de depuración, configure el NODO_DEBUG variable de entorno al espacio de nombres cuando ejecuta el script:
NODE_DEBUG=miapp nodo index.js
Si desea habilitar varios espacios de nombres de depuración, agregue una coma para separar los espacios de nombres:
NODE_DEBUG=miaplicación, miaplicación2,miaplicación3 nodo index.js
Si no incluye un espacio de nombres en el NODO_DEBUG variable de entorno, las llamadas a debuglog ignorarán ese espacio de nombres.
El util.debuglog El método proporciona una funcionalidad útil, pero si su aplicación requiere un registro más complejo, puede usar uno de los otros robustos paquetes de registro en el ecosistema Node.js.
Funciones prometedoras para la flexibilidad
Las promesas en JavaScript proporcionan una forma de manejar el código asíncrono de una forma más estructurada y manejable. al permitirle encadenar operaciones, manejar errores y eventos exitosos por separado y evitar la devolución de llamada infierno.
Aunque, no todas las funciones incorporadas admiten promesas. Sin embargo, puede "prometer" funciones que usan devoluciones de llamada tradicionales para permitirles admitir promesas con el módulo util. util.promise método.
Este método toma una función que usa el sistema de devolución de llamada tradicional y devuelve una función que usa promesas.
Por ejemplo:
constante útil = requerir("útil");
// Versión de devolución de llamada
funciónfunción de devolución de llamada(arg1, arg2, devolución de llamada) {
// Operación asíncrona
// Invocar devolución de llamada con error (si lo hay) y resultado
}// Promise callbackFunction
constante callbackFunctionPromise = util.promisify (callbackFunction);
// Versión prometida
Promesa de función de devolución de llamada (arg1, arg2)
.entonces((resultado) => {
// Resultado del proceso
})
.atrapar((error) => {
// Manejar el error
});
En el ejemplo anterior, el util.promise convirtió la versión de devolución de llamada de la función en una versión que usa promesas.
Esta conversión le permite utilizar la cadena entonces y atrapar bloques, uso trata de atraparloy administre mejor su código asíncrono.
Formateo de cadenas con un método familiar
El nodo.js útil El módulo proporciona una función de formato llamada formato.util que le permite crear cadenas formateadas. Este método funciona de manera similar a el imprimir función en bash y otros lenguajes de programación como C y C++.
El util.format() El método toma una cadena de formato que puede contener cero o más especificadores de formato, como %s (instrumentos de cuerda), %d (números), como argumento. También toma un número arbitrario de valores que reemplazarán a sus especificadores correspondientes.
Por ejemplo:
constante útil = requerir("útil");
constante nombre = "Bonnie";
constante edad = 30;constante formattedString = util.format(
"Mi nombre es %s y tengo %d años".,
nombre,
edad
);
consola.log (Cadena con formato); // Mi nombre es Bonnie y tengo 30 años.
Este ejemplo utiliza una cadena de formato con dos marcadores de posición: %s y %d. El %s el marcador de posición es para la sustitución de cadenas, mientras que %d es para sustitución numérica. La llamada a util.format pasa los valores correspondientes:nombre y edad—para cada marcador de posición.
Si un especificador no tiene un argumento correspondiente, el formato.util El método no lo reemplazará y devolverá la cadena sin alterarla:
constante útil = requerir("útil");
constante formattedString = util.format("Me llamo S");
consola.log (Cadena con formato); // Me llamo S
Este ejemplo llama al formato con un solo argumento, por lo que el método devuelve la cadena original.
Hay muchos más usos del módulo Util
Aparte de estos usos, el módulo de utilidad de Node.js ofrece otras funciones de utilidad. Los ejemplos incluyen la inspección de objetos y valores y la desaprobación de herramientas obsoletas.
Al aprovechar la funcionalidad proporcionada por el módulo util, puede mejorar la legibilidad y la capacidad de mantenimiento de su código y su flujo de trabajo general.