Mô-đun util cung cấp một tập hợp các tiện ích mà bạn có thể sử dụng để gỡ lỗi, kiểm tra và định dạng dữ liệu trong các ứng dụng Node.js.
Đi sâu vào các chức năng khác nhau của mô-đun util và khám phá một số ví dụ để giúp bạn tận dụng các công cụ này.
Ghi nhật ký thuận tiện hơn
Ghi nhật ký đề cập đến việc ghi lại thông tin hoặc sự kiện quan trọng, chẳng hạn như giá trị biến, thông báo lỗi và luồng thực thi, xảy ra trong một ứng dụng phần mềm. Ghi nhật ký phục vụ nhiều mục đích, bao gồm gỡ lỗi, giám sát và kiểm toán.
Mô-đun tiện ích Node.js cung cấp cơ chế ghi nhật ký thuận tiện bằng cách sử dụng util.debuglog phương pháp. Nó cho phép bạn tạo các chức năng ghi nhật ký gỡ lỗi bằng một không gian tên và bạn có thể bật hoặc tắt chúng bằng cách đặt NODE_DEBUG biến môi trường. Đây là một ví dụ:
const util = require("util");
const debug = util.debuglog("myapp");
debug("This is a debug message");
Ví dụ này cho thấy cách bạn có thể đặt trình ghi nhật ký gỡ lỗi đơn giản, trong vùng tên “myapp” và ghi nhật ký thông báo cũng như ID tiến trình của nó vào bảng điều khiển.
Để bật nhật ký gỡ lỗi, hãy đặt NODE_DEBUG biến môi trường vào không gian tên khi bạn chạy tập lệnh:
NODE_DEBUG=myapp node index.js
Nếu bạn muốn bật nhiều không gian tên gỡ lỗi, hãy thêm dấu phẩy để phân tách các không gian tên:
NODE_DEBUG=myapp,myapp2,myapp3 node index.js
Nếu bạn không bao gồm một không gian tên trong NODE_DEBUG biến môi trường, lệnh gọi đến debuglog sẽ bỏ qua không gian tên đó.
Các util.debuglog phương thức cung cấp chức năng hữu ích, nhưng nếu ứng dụng của bạn yêu cầu ghi nhật ký phức tạp hơn, bạn có thể sử dụng một trong các gói ghi nhật ký mạnh mẽ khác trong hệ sinh thái Node.js.
Chức năng hứa hẹn cho tính linh hoạt
Lời hứa trong JavaScript cung cấp một cách để xử lý mã không đồng bộ theo cách có cấu trúc và dễ quản lý hơn bằng cách cho phép bạn xâu chuỗi các hoạt động, xử lý lỗi và sự kiện thành công một cách riêng biệt, đồng thời tránh địa ngục gọi lại.
Mặc dù, không phải tất cả các chức năng sẵn có đều hỗ trợ lời hứa. Tuy nhiên, bạn có thể “quảng cáo” các chức năng sử dụng các lệnh gọi lại truyền thống để cho phép chúng hỗ trợ các lời hứa với mô-đun util. util.promisify phương pháp.
Phương thức này nhận một hàm sử dụng hệ thống gọi lại truyền thống và trả về một hàm sử dụng lời hứa.
Ví dụ:
const util = require("util");
function callbackFunction(arg1, arg2, callback) {
}
const callbackFunctionPromise = util.promisify(callbackFunction);
callbackFunctionPromise(arg1, arg2)
.then((result) => {
})
.catch((error) => {
});
Trong ví dụ trên, các util.promisify đã chuyển đổi phiên bản gọi lại của hàm thành phiên bản sử dụng lời hứa.
Chuyển đổi này cho phép bạn sử dụng chuỗi sau đó Và nắm lấy khối, sử dụng cố gắng bắtvà quản lý mã không đồng bộ của bạn tốt hơn.
Định dạng chuỗi bằng một phương thức quen thuộc
Node.js sử dụng mô-đun cung cấp một chức năng định dạng gọi là util.format cho phép bạn tạo các chuỗi được định dạng. Phương pháp này hoạt động tương tự như phương pháp bản inf chức năng trong bash và các ngôn ngữ lập trình khác như C và C++.
Các util.format() phương thức lấy một chuỗi định dạng có thể chứa 0 hoặc nhiều định dạng định dạng, chẳng hạn như %S (dây), %d (số), như một đối số. Nó cũng nhận một số giá trị tùy ý sẽ thay thế các chỉ định tương ứng của chúng.
Ví dụ:
const util = require("util");
const name = "Bonnie";
const age = 30;
const formattedString = util.format(
"My name is %s, and I am %d years old.",
name,
age
);
console.log(formattedString);
Ví dụ này sử dụng một chuỗi định dạng với hai trình giữ chỗ: %S Và %d. Các %S giữ chỗ là để thay thế chuỗi, trong khi %d là để thay thế số. Cuộc gọi đến util.format chuyển các giá trị tương ứng—tên Và tuổi—cho mỗi trình giữ chỗ.
Nếu một chỉ định không có đối số tương ứng, thì util.format sẽ không thay thế nó và sẽ trả về chuỗi mà không thay đổi nó:
const util = require("util");
const formattedString = util.format("My name is %s");
console.log(formattedString);
Ví dụ này gọi định dạng chỉ với một đối số duy nhất, vì vậy phương thức trả về chuỗi gốc.
Có rất nhiều công dụng khác của mô-đun Util
Ngoài những cách sử dụng này, mô-đun tiện ích Node.js còn cung cấp các chức năng tiện ích khác. Các ví dụ bao gồm kiểm tra các đối tượng và giá trị cũng như loại bỏ các công cụ lỗi thời.
Bằng cách tận dụng chức năng do mô-đun util cung cấp, bạn có thể cải thiện khả năng đọc và khả năng bảo trì của mã cũng như quy trình công việc tổng thể của mình.