Khi bạn phát triển bất kỳ phần mềm nào thì công đoạn debug là không thể thiếu. Do vậy, ngay khi bạn học một ngôn ngữ lập trình bất kỳ nào thì debug là điều thứ 2 bạn cần phải biết sau khái niệm cơ bản.
Debug nói chung chỉ có 2 kỹ thuật cơ bản: đặt break point và đặt log. Tất nhiên, đi vào cụ thể từng kỹ thuật thì lại có vô vàn điều cần nói tới.
Trong bài viết này, mình sẽ chia sẻ cách đặt log sao cho hiệu quả khi các bạn debug trong Node.js
Node.js debugging
Việc ghi lại log trong ứng dụng có rất nhiều lợi ích, kể cả trong quá trình phát triển hay đã triển khai ra thị trường.
Với các ứng dụng đã triển khai tới người dùng cuối thì log chính “vị cứu thế” duy nhất để bạn có thể sửa lỗi.
Trong quá trình làm việc với Node.js, mình phát hiện ra một tiện ích để hỗ trợ in log rất hiệu quả. Đó chính là debug module (tên cũng đẹp luôn).
>> Dành cho bạn: Khóa học lập trình Nodejs cơ bản
Cách sử dụng thư viện node.js debugging này cũng đơn giản. Sau đây là một ví dụ mẫu:
Bạn tạo instance của debug cũng đơn giản, và có thể tạo nhiều instance:
// Create multiple instances of debug // In theory these would serve two different purposes var debuggerA = require('debug')('worker:a'), debuggerB = require('debug')('worker:b'); // Sample usages of the debugger function work() { debuggerA('doing lots of uninteresting work'); setTimeout(work, Math.random() * 1000); } work(); function workb() { debuggerB('doing some work'); setTimeout(workb, Math.random() * 2000); } workb();
Ngoài ra, bạn có thể chỉ định là sẽ in log của instance nào. Như ví dụ trên, mình có 2 instance của debug, và mình chỉ muốn in log của debuggerA. Mình cần gõ lệnh sau:
DEBUG=worker:a node app.js
Hoặc để in tất cả log thì dùng ký tự * đại diện cho tất cả instance:
DEBUG=worker:* node app.js
Bạn có biết ý nghĩa của việc in từng loại log ra không?
Mục đích là bạn có thể cần in tất cả loại log trong quá trình phát triển để dễ sửa lỗi. Nhưng khi ứng dụng đã ra thị trường thì không cần phải in tất cả log. Lúc này chỉ cần in những log cơ bản nhất có thể. Tránh rò rỉ thông tin là một lý do 🙂
Nếu bạn muốn trang trí màu màu cho log khi in ra thì có thể sử dụng thêm thư viện chalk
Ví dụ:
var chalk = require('chalk'); debuggerA(chalk.red.bold('OMG an awful error!'));
Bạn thấy tiện ích debug trong Node.js này thế nào? Hãy để lại ý kiến ở dưới phần bình luận nhé.
Bình luận. Cùng nhau thảo luận nhé!