Node.js là một trình chạy JavaScript dựa trên cùng một công cụ V8 được sử dụng trong trình duyệt Chrome của Google. Nó thường được sử dụng để xây dựng các ứng dụng đầu cuối và phía máy chủ đa nền tảng. Node.js ngày càng trở nên phổ biến trong thập kỷ qua vì nó dễ cài đặt, dễ sử dụng, nhanh chóng và cho phép các nhà phát triển web phía máy khách tận dụng các kỹ năng của họ ở những nơi khác.
Tuy nhiên, phát triển phần mềm vẫn là một nhiệm vụ phức tạp và mã Node.js của bạn sẽ bị lỗi vào một thời điểm nào đó. Hướng dẫn này trình bày các công cụ khác nhau để giúp gỡ lỗi các ứng dụng và tìm ra nguyên nhân của sự cố.
Hãy đi sâu vào ngay.
Tổng quan về gỡ lỗi
“Gỡ lỗi” là tên được đặt cho các phương tiện khác nhau để sửa lỗi phần mềm. Việc sửa một lỗi thường rất đơn giản. Việc tìm ra nguyên nhân của lỗi có thể phức tạp hơn đáng kể và khiến bạn phải vò đầu bứt tai mất nhiều giờ.
Các phần sau đây mô tả ba loại lỗi chung mà bạn sẽ gặp phải.
Lỗi cú pháp
Mã của bạn không tuân theo các quy tắc của ngôn ngữ – ví dụ: khi bạn bỏ qua dấu ngoặc đóng hoặc viết sai chính tả một câu lệnh chẳng hạn như console.lag(x)
.
Một trình soạn thảo mã tốt có thể giúp phát hiện các vấn đề thường gặp bằng cách:
- Mã hóa màu sắc các câu lệnh hợp lệ hoặc không hợp lệ
- Các biến kiểm tra kiểu
- Chức năng tự động hoàn thành và tên biến
- Đánh dấu các dấu ngoặc phù hợp
- Các khối mã tự động thụt lề
- Phát hiện mã không thể truy cập
- Cấu trúc lại các chức năng lộn xộn
Các trình soạn thảo miễn phí như VS Code và Atom hỗ trợ tuyệt vời cho Node.js, JavaScript và TypeScript (chuyển đổi sang JavaScript). Các vấn đề cú pháp cơ bản thường có thể được phát hiện trước khi bạn lưu và kiểm tra mã của mình.
Một trình viết mã như ESLint cũng sẽ báo cáo lỗi cú pháp, thụt lề sai và các biến không được khai báo. ESLint là một công cụ Node.js mà bạn có thể cài đặt trên toàn cầu với:
npm i eslint -g
Bạn có thể kiểm tra các tệp JavaScript từ dòng lệnh bằng cách sử dụng:
eslint mycode.js
… Nhưng sẽ dễ dàng hơn khi sử dụng một plugin trình chỉnh sửa như ESLint cho VS Code hoặc linter-eslint cho Atom, sẽ tự động xác thực mã khi bạn nhập:

Lỗi logic
Mã của bạn chạy nhưng không hoạt động như bạn mong đợi. Ví dụ, một người dùng không đăng xuất khi họ yêu cầu; một báo cáo cho thấy số liệu không chính xác; dữ liệu không được lưu đầy đủ vào cơ sở dữ liệu; vân vân.
Lỗi logic có thể do:
- Sử dụng biến sai
- Điều kiện không chính xác, ví dụ:
if (a > 5)
thay vìif (a < 5)
- Các phép tính không tính đến mức độ ưu tiên của toán tử, ví dụ:
1+2*3
dẫn đến kết quả là 7 thay vì 9.
Lỗi thời gian chạy (hoặc thực thi)
Lỗi chỉ xuất hiện khi ứng dụng được thực thi, điều này thường dẫn đến sự cố. Lỗi thời gian chạy có thể do:
- Chia cho một biến đã được đặt thành 0
- Cố gắng truy cập một mục mảng không tồn tại
- Đang cố gắng ghi vào một tệp chỉ đọc
Các lỗi logic và thời gian chạy khó phát hiện hơn, mặc dù các kỹ thuật phát triển sau đây có thể giúp:
- Sử dụng Phát triển theo hướng kiểm tra: TTD khuyến khích bạn viết các bài kiểm tra trước khi phát triển một hàm, ví dụ: X được trả về từ hàmY khi Z được chuyển dưới dạng tham số. Các bài kiểm tra này được chạy trong quá trình phát triển ban đầu và các bản cập nhật tiếp theo để đảm bảo mã tiếp tục hoạt động như mong đợi.
- Sử dụng hệ thống theo dõi sự cố: Không có gì tệ hơn một email thông báo “Phần mềm của bạn không hoạt động” ! Hệ thống theo dõi vấn đề cho phép bạn ghi lại các vấn đề cụ thể, các bước tái tạo tài liệu, xác định mức độ ưu tiên, chỉ định nhà phát triển và theo dõi tiến độ của các bản sửa lỗi.
- Sử dụng kiểm soát nguồn: Một hệ thống kiểm soát nguồn như Git sẽ giúp bạn sao lưu mã, quản lý các bản sửa đổi và xác định nơi xuất hiện lỗi. Các kho lưu trữ trực tuyến, bao gồm Github và Bitbucket, cung cấp không gian miễn phí và các công cụ cho các dự án mã nguồn mở hoặc nhỏ hơn.
Bạn vẫn sẽ gặp lỗi Node.js, nhưng các phần sau đây mô tả các cách để xác định lỗi khó nắm bắt đó.
Đặt các biến môi trường Node.js thích hợp
Các biến môi trường được đặt trong hệ điều hành chủ có thể kiểm soát cài đặt mô-đun và ứng dụng Node.js. Phổ biến nhất là NODE_ENV
, thường được đặt thành phát triển khi gỡ lỗi hoặc sản xuất khi chạy trên máy chủ trực tiếp. Đặt các biến môi trường trên macOS hoặc Linux bằng lệnh:
NODE_ENV=development
hoặc tại dấu nhắc lệnh Windows (cổ điển):
set NODE_ENV=development
hoặc Windows Powershell:
$env:NODE_ENV="development"
Trong khuôn khổ Express.js phổ biến, việc đặt NODE_ENV thành phát triển sẽ vô hiệu hóa bộ nhớ đệm tệp mẫu và xuất ra các thông báo lỗi dài dòng, điều này có thể hữu ích khi gỡ lỗi. Các mô-đun khác có thể cung cấp các tính năng tương tự và bạn có thể thêm điều kiện NODE_ENV vào ứng dụng của mình, ví dụ:
// running in development mode? const devMode = (process.env.NODE_ENV !== 'production'); if (devMode) { console.log('application is running in development mode'); }
Bạn cũng có thể sử dụng phương thức use.debuglog của Node để xuất ra các thông báo lỗi có điều kiện, ví dụ:
import { debuglog } from 'util'; const myappDebug = debuglog('myapp'); myappDebug('log something');
Ứng dụng này sẽ chỉ xuất ra thông báo nhật ký khi NODE_DEBUG được đặt thành myapp hoặc ký tự đại diện như * hoặc của tôi *.
Sử dụng Tùy chọn dòng lệnh Node.js
Các tập lệnh nút thường được khởi chạy với nút theo sau là tên của tập lệnh nhập:
node app.js
Bạn cũng có thể đặt các tùy chọn dòng lệnh để kiểm soát các khía cạnh thời gian chạy khác nhau. Các cờ hữu ích để gỡ lỗi bao gồm:
--check
cú pháp kiểm tra tập lệnh mà không thực thi-
--trace-warnings
xuất ra một dấu vết ngăn xếp khi Lời hứa JavaScript không giải quyết hoặc từ chối -
--enable-source-maps
hiển thị bản đồ nguồn khi sử dụng trình chuyển tiếp như TypeScript -
--throw-deprecation
cảnh báo khi các tính năng Node.js không dùng nữa được sử dụng -
--redirect-warnings=file
xuất cảnh báo đến một tệp thay vì stderr -
--trace-exit
xuất ra một dấu vết ngăn xếp khiprocess.exit()
được gọi.
Xuất thông báo đến bảng điều khiển
Xuất thông báo bảng điều khiển là một trong những cách đơn giản nhất để gỡ lỗi ứng dụng Node.js:
console.log(`someVariable: ${ someVariable }`);
Rất ít nhà phát triển nhận ra có nhiều phương pháp giao diện điều khiển khác:
Phương pháp bảng điều khiển | Sự mô tả |
---|---|
.log(msg) |
thông báo giao diện điều khiển tiêu chuẩn |
.log('%j', obj) |
đối tượng đầu ra dưới dạng một chuỗi JSON nhỏ gọn |
.dir(obj, opt) |
thuộc tính đối tượng in đẹp |
.table(obj) |
xuất mảng và đối tượng ở định dạng bảng |
.error(msg) |
một thông báo lỗi |
.count(label) |
tăng một bộ đếm và đầu ra được đặt tên |
.countReset(label) |
đặt lại một bộ đếm đã đặt tên |
.group(label) |
thụt lề một nhóm tin nhắn |
.groupEnd(label) |
chấm dứt một nhóm |
.time(label) |
bắt đầu một bộ hẹn giờ được đặt tên |
.timeLog(label) |
báo cáo thời gian đã trôi qua |
.timeEnd(label) |
dừng một bộ hẹn giờ đã đặt tên |
.trace() |
xuất ra một dấu vết ngăn xếp (danh sách tất cả các lệnh gọi hàm được thực hiện) |
.clear() |
xóa bảng điều khiển |
console.log()
cũng chấp nhận một danh sách các giá trị được phân tách bằng dấu phẩy:
let x = 123; console.log('x:', x); // x: 123
… Mặc dù cấu trúc hủy ES6 cung cấp đầu ra tương tự với ít nỗ lực hơn:
console.log({ x }); // { x: 123 }
Lệnh console.dir () in khá nhiều thuộc tính đối tượng theo cách giống như lệnh use.inspect ():
console.dir(myObject, { depth: null, color: true });
Tranh cãi về bảng điều khiển
Một số nhà phát triển tuyên bố bạn không bao giờ nên sử dụng console.log()
vì:
- Bạn đang thay đổi mã và có thể thay đổi điều gì đó hoặc quên xóa nó và
- Không cần thiết khi có các tùy chọn gỡ lỗi tốt hơn.
Đừng tin bất cứ ai tuyên bố rằng họ không bao giờ sử dụng console.log()
! Ghi nhật ký nhanh chóng và bẩn thỉu, nhưng mọi người đều sử dụng nó tại một số thời điểm. Sử dụng bất kỳ công cụ hoặc kỹ thuật nào bạn thích. Sửa lỗi quan trọng hơn phương pháp bạn áp dụng để tìm ra lỗi đó.
Sử dụng Hệ thống ghi nhật ký của bên thứ ba
Hệ thống ghi nhật ký của bên thứ ba cung cấp các tính năng phức tạp hơn như cấp độ nhắn tin, độ dài, sắp xếp, xuất tệp, lập hồ sơ, báo cáo, v.v. Các giải pháp phổ biến bao gồm cabin, loglevel, morgan, pino, signale, storyboard, tracer, và wonton.
Sử dụng Trình kiểm tra V8
Công cụ JavaScript V8 cung cấp một ứng dụng khách gỡ lỗi mà bạn có thể sử dụng trong Node.js. Bắt đầu một ứng dụng bằng cách sử dụng kiểm tra nút, ví dụ:
node inspect app.js
Trình gỡ lỗi tạm dừng ở dòng đầu tiên và hiển thị lời nhắc gỡ lỗi>:
$ node inspect .mycode.js < Debugger listening on ws://127.0.0.1:9229/143e23fb < For help, see: https://nodejs.org/en/docs/inspector < ok < Debugger attached. < Break on start in mycode.js:1 > 1 const count = 10; 2 3 for (i = 0; i < counter; i++) { debug>
Nhập trợ giúp để xem danh sách các lệnh. Bạn có thể duyệt qua ứng dụng bằng cách nhập:
- cont hoặc c : tiếp tục thực hiện
- next hoặc n : chạy lệnh tiếp theo
- bước hoặc s : bước vào một hàm đang được gọi
- out hoặc o : bước ra khỏi một hàm và quay lại câu lệnh gọi
- tạm dừng : tạm dừng chạy mã
- watch (‘myvar’) : xem một biến
- setBreakPoint () hoặc sb () : đặt điểm ngắt
- khởi động lại : khởi động lại tập lệnh
- .exit hoặc Ctrl | Cmd + D : thoát khỏi trình gỡ lỗi
Phải thừa nhận rằng tùy chọn gỡ lỗi này tốn thời gian và khó sử dụng. Chỉ sử dụng nó khi không có tùy chọn nào khác, chẳng hạn như khi bạn đang chạy mã trên máy chủ từ xa và không thể kết nối từ nơi khác hoặc cài đặt phần mềm bổ sung.
Đăng kí để nhận thư mới
Sử dụng trình duyệt Chrome để gỡ lỗi mã Node.js
Tùy chọn kiểm tra Node.js được sử dụng ở trên khởi động máy chủ Web Socket lắng nghe trên cổng localhost 9229. Nó cũng khởi động ứng dụng gỡ lỗi dựa trên văn bản, nhưng có thể sử dụng ứng dụng đồ họa – chẳng hạn như ứng dụng được tích hợp trong Google Chrome và dựa trên Chrome các trình duyệt như Chromium, Edge, Opera, Vivaldi và Brave.
Để gỡ lỗi một ứng dụng web điển hình, hãy khởi động nó với tùy chọn –inspect để bật máy chủ Web Socket của trình gỡ lỗi V8:
node --inspect index.js
Ghi chú:
- index.js được coi là tập lệnh nhập của ứng dụng.
- Đảm bảo bạn sử dụng
--inspect
với dấu gạch ngang kép để đảm bảo bạn không khởi động ứng dụng gỡ lỗi dựa trên văn bản. - Bạn có thể sử dụng nút bấm thay vì nút nếu bạn muốn tự động khởi động lại ứng dụng khi tệp bị thay đổi.
Theo mặc định, trình gỡ lỗi sẽ chỉ chấp nhận các kết nối đến từ máy cục bộ. Nếu bạn đang chạy ứng dụng trên một thiết bị, máy ảo hoặc vùng chứa Docker khác, hãy sử dụng:
node --inspect=0.0.0.0:9229 index.js

Bạn cũng có thể sử dụng --inspect-brk
thay vì --inspect
để tạm dừng xử lý (đặt điểm ngắt) trên dòng đầu tiên để bạn có thể xem qua mã ngay từ đầu.
Mở trình duyệt dựa trên Chrome và nhập chrome://inspect
vào thanh địa chỉ để xem các thiết bị nội bộ và được nối mạng:

Nếu ứng dụng Node.js của bạn không xuất hiện dưới dạng Mục tiêu Từ xa , hãy:
- Nhấp vào Mở Công cụ dành riêng cho DevTools cho Node và chọn địa chỉ và cổng, hoặc
- Chọn Khám phá mục tiêu mạng , nhấp vào Định cấu hình , sau đó thêm địa chỉ IP và cổng của thiết bị nơi thiết bị đang chạy.
Nhấp vào liên kết kiểm tra của Target để khởi chạy ứng dụng gỡ lỗi DevTools. Điều này sẽ quen thuộc với bất kỳ ai đã sử dụng DevTools để gỡ lỗi mã phía máy khách:

Chuyển sang bảng Nguồn . Bạn có thể mở bất kỳ tệp nào bằng cách nhấn Cmd | Ctrl + P và nhập tên tệp của nó (chẳng hạn như index.js).
Tuy nhiên, việc thêm thư mục dự án của bạn vào không gian làm việc sẽ dễ dàng hơn. Điều này cho phép bạn tải, chỉnh sửa và lưu tệp trực tiếp từ DevTools (bạn có nghĩ đó là ý tưởng hay hay không là một vấn đề khác!)
- Nhấp vào + Thêm thư mục vào không gian làm việc
- Chọn vị trí của dự án Node.js của bạn
- Nhấn Đồng ý để cho phép thay đổi tệp
Bây giờ bạn có thể tải các tệp từ cây thư mục bên trái:

Nhấp vào bất kỳ số dòng nào để đặt điểm ngắt được biểu thị bằng điểm đánh dấu màu xanh lam.
Gỡ lỗi dựa trên các điểm ngắt . Chúng chỉ định nơi trình gỡ lỗi sẽ tạm dừng thực thi chương trình và hiển thị trạng thái hiện tại của chương trình (biến, ngăn xếp cuộc gọi, v.v.)
Bạn có thể xác định bất kỳ số lượng điểm ngắt nào trong giao diện người dùng. Một tùy chọn khác là đặt một trình gỡ lỗi; câu lệnh vào mã của bạn, lệnh này sẽ dừng khi trình gỡ lỗi được đính kèm.
Tải và sử dụng ứng dụng web của bạn để đạt được tuyên bố nơi đặt điểm ngắt. Trong ví dụ ở đây, http: // localhost: 3000 / được mở trong bất kỳ trình duyệt nào và DevTools sẽ tạm dừng thực thi trên dòng 44:

Bảng điều khiển bên phải hiển thị:
- Một hàng biểu tượng hành động (xem bên dưới).
- Ngăn Xem cho phép bạn theo dõi các biến bằng cách nhấp vào biểu tượng + và nhập tên của chúng.
- Ngăn Điểm ngắt hiển thị danh sách tất cả các điểm ngắt và cho phép bật hoặc tắt chúng.
- Ngăn Phạm vi hiển thị trạng thái của tất cả các biến cục bộ, mô-đun và toàn cục. Bạn sẽ kiểm tra khung này thường xuyên nhất.
- Ngăn Ngăn xếp cuộc gọi hiển thị thứ bậc của các chức năng được gọi để đạt được điểm này.
Một hàng biểu tượng hành động được hiển thị ở trên Bị tạm dừng trên điểm ngắt :

Từ trái sang phải, chúng thực hiện các tác vụ sau:
- tiếp tục thực thi : Tiếp tục xử lý cho đến điểm ngắt tiếp theo
- bước qua : Thực hiện lệnh tiếp theo nhưng ở trong khối mã hiện tại – không nhảy vào bất kỳ chức năng nào mà nó gọi
- bước vào : Thực hiện lệnh tiếp theo và nhảy vào bất kỳ chức năng nào nếu cần
- bước ra : Tiếp tục xử lý đến cuối hàm và quay lại lệnh gọi
- bước : Tương tự như bước vào ngoại trừ nó sẽ không nhảy vào các chức năng không đồng bộ
- hủy kích hoạt tất cả các điểm ngắt
- tạm dừng đối với các trường hợp ngoại lệ : Tạm dừng xử lý khi xảy ra lỗi.
Các điểm ngắt có điều kiện
Đôi khi cần kiểm soát nhiều hơn một chút đối với các điểm ngắt. Hãy tưởng tượng bạn có một vòng lặp đã hoàn thành 1.000 lần lặp, nhưng bạn chỉ quan tâm đến trạng thái của vòng cuối cùng:
for (let i = 0; i < 1000; i++) { // set breakpoint here }
Thay vì nhấp vào tiếp tục thực thi 999 lần, bạn có thể nhấp chuột phải vào dòng, chọn Thêm điểm ngắt có điều kiện và nhập một điều kiện chẳng hạn như i = 999
:

Chrome hiển thị các điểm ngắt có điều kiện bằng màu vàng chứ không phải màu xanh lam. Trong trường hợp này, điểm ngắt chỉ được kích hoạt vào lần lặp cuối cùng của vòng lặp.
Điểm ghi nhật ký
Các điểm ghi nhật ký triển khai hiệu quả console.log () mà không cần bất kỳ mã nào! Một biểu thức có thể được xuất ra khi mã thực thi bất kỳ dòng nào, nhưng nó không tạm dừng xử lý, không giống như một điểm ngắt.
Để thêm điểm nhật ký, hãy nhấp chuột phải vào bất kỳ dòng nào, chọn Thêm điểm nhật ký và nhập một biểu thức, ví dụ: 'loop counter i', i
:

Bảng điều khiển DevTools xuất loop counter i: 0
đến loop counter i: 999
trong ví dụ trên.
Sử dụng mã VS để gỡ lỗi ứng dụng Node.js
VS Code, hay Visual Studio Code, là một trình soạn thảo mã miễn phí của Microsoft đã trở nên phổ biến với các nhà phát triển web. Ứng dụng này có sẵn cho Windows, macOS và Linux và được phát triển bằng công nghệ web trong khung Electron.
VS Code hỗ trợ Node.js và có một ứng dụng khách gỡ lỗi tích hợp. Hầu hết các ứng dụng có thể được gỡ lỗi mà không cần bất kỳ cấu hình nào; trình soạn thảo sẽ tự động khởi động máy chủ gỡ lỗi và máy khách.
Mở tệp bắt đầu (chẳng hạn như index.js), kích hoạt ngăn Chạy và Gỡ lỗi , nhấp vào nút Chạy và Gỡ lỗi , và chọn môi trường Node.js. Nhấp vào bất kỳ dòng nào để kích hoạt điểm ngắt được hiển thị dưới dạng biểu tượng hình tròn màu đỏ. Sau đó, mở ứng dụng trong trình duyệt như trước – VS Code tạm dừng thực thi khi đạt đến điểm ngắt:

Các ngăn Biến , Xem , Ngăn xếp cuộc gọi và Điểm ngắt tương tự như các ngăn được hiển thị trong Công cụ dành cho nhà phát triển của Chrome. Ngăn Tập lệnh đã tải hiển thị những tập lệnh nào đã được tải, mặc dù nhiều tập lệnh nằm trong Node.js.
Thanh công cụ của các biểu tượng hành động cho phép bạn:
- tiếp tục thực thi : Tiếp tục xử lý cho đến điểm ngắt tiếp theo
- bước qua : Thực hiện lệnh tiếp theo nhưng vẫn ở trong hàm hiện tại – không nhảy vào bất kỳ hàm nào mà nó gọi
- bước vào : Thực hiện lệnh tiếp theo và nhảy vào bất kỳ chức năng nào mà nó gọi
- bước ra : Tiếp tục xử lý đến cuối hàm và quay lại lệnh gọi
- khởi động lại ứng dụng và trình gỡ lỗi
- dừng ứng dụng và trình gỡ lỗi
Giống như Chrome DevTools, bạn có thể nhấp chuột phải vào bất kỳ dòng nào để thêm Điểm ngắt có điều kiện và điểm Nhật ký .
Để biết thêm thông tin, hãy tham khảo Gỡ lỗi trong Mã Visual Studio.
Cấu hình gỡ lỗi nâng cao mã VS
Có thể cần thêm cấu hình VS Code nếu bạn muốn gỡ lỗi mã trên một thiết bị khác, một máy ảo hoặc cần sử dụng các tùy chọn khởi chạy thay thế như gật đầu.
VS Code lưu trữ các cấu hình gỡ lỗi trong tệp khởi chạy.json bên trong thư .vscode
trong dự án của bạn. Mở ngăn Chạy và Gỡ lỗi , bấm tạo tệp launcher.json và chọn môi trường Node.js để tạo tệp này. Một cấu hình ví dụ được cung cấp:

Bất kỳ số lượng cài đặt cấu hình nào cũng có thể được xác định là các đối tượng trong mảng "configurations"
. Nhấp vào Thêm cấu hình… và chọn một tùy chọn thích hợp.
Một cấu hình Node.js riêng lẻ có thể:
- Tự khởi chạy một quy trình, hoặc
- Đính kèm vào máy chủ Web Socket gỡ lỗi, có thể chạy trên máy từ xa hoặc vùng chứa Docker.
Ví dụ, để xác định cấu hình nút, chọn Node.js: Nodemon Setup và thay đổi tập lệnh mục nhập “chương trình” nếu cần:
{ // custom configuration "version": "0.2.0", "configurations": [ { "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", "name": "nodemon", "program": "${workspaceFolder}/index.js", "request": "launch", "restart": true, "runtimeExecutable": "nodemon", "skipFiles": [ "<node_internals>/**" ], "type": "pwa-node" } ] }
Lưu tệp launch.json
và gật đầu (cấu hình “tên”) xuất hiện trong danh sách thả xuống ở đầu ngăn Chạy và Gỡ lỗi . Nhấp vào biểu tượng chạy màu xanh lục để bắt đầu sử dụng cấu hình đó và khởi chạy ứng dụng bằng gật đầu:

Như trước đây, bạn có thể thêm các điểm ngắt, điểm ngắt có điều kiện và điểm ghi nhật ký. Sự khác biệt chính là gật đầu sẽ tự động khởi động lại máy chủ của bạn khi một tệp được sửa đổi.
Để biết thêm thông tin, hãy tham khảo Cấu hình khởi chạy mã VS.
Các phần mở rộng VS Code sau đây cũng có thể giúp bạn gỡ lỗi mã được lưu trữ trên các môi trường máy chủ từ xa hoặc bị cô lập:
- Từ xa – Vùng chứa: Kết nối với các ứng dụng đang chạy trong vùng chứa Docker
- Từ xa – SSH: Kết nối với các ứng dụng chạy trên máy chủ từ xa
- Từ xa – WSL: Kết nối với các ứng dụng chạy trên Hệ thống con Windows dành cho Linux (WSL).
Các tùy chọn gỡ lỗi Node.js khác
Hướng dẫn gỡ lỗi Node.js cung cấp lời khuyên cho nhiều trình soạn thảo văn bản và IDE, bao gồm Visual Studio, JetBrains WebStorm, Gitpod và Eclipse. Atom cung cấp tiện ích mở rộng nút gỡ lỗi, tích hợp trình gỡ lỗi Chrome DevTools vào trình chỉnh sửa.
Sau khi ứng dụng của bạn hoạt động, bạn có thể cân nhắc sử dụng các dịch vụ gỡ lỗi thương mại như LogRocket và Sentry.io, có thể ghi lại và phát lại các lỗi máy khách và máy chủ mà người dùng thực gặp phải.
Bản tóm tắt
Về mặt lịch sử, việc gỡ lỗi JavaScript rất khó khăn, nhưng đã có những cải tiến rất lớn trong thập kỷ qua. Lựa chọn tốt – nếu không muốn nói là tốt hơn – so với những lựa chọn được cung cấp cho các ngôn ngữ khác.
Sử dụng bất kỳ công cụ nào là thiết thực để xác định vấn đề. Không có gì sai với console.log () để tìm kiếm lỗi nhanh chóng, nhưng Chrome DevTools hoặc VS Code có thể phù hợp hơn cho các vấn đề phức tạp hơn. Các công cụ này có thể giúp bạn tạo mã mạnh hơn và bạn sẽ mất ít thời gian hơn để sửa lỗi.
Bạn thề với phương pháp gỡ lỗi Node.js nào? Chia sẻ trong phần bình luận bên dưới!
Tiết kiệm thời gian, chi phí và tối đa hóa hiệu suất trang web với:
- Trợ giúp tức thì từ các chuyên gia lưu trữ WordPress, 24/7.
- Tích hợp Cloudflare Enterprise.
- Tiếp cận khán giả toàn cầu với 34 trung tâm dữ liệu trên toàn thế giới.
- Tối ưu hóa với Giám sát Hiệu suất Ứng dụng được tích hợp sẵn của chúng tôi.
Tất cả những điều đó và hơn thế nữa, trong một kế hoạch không có hợp đồng dài hạn, hỗ trợ di chuyển và đảm bảo hoàn tiền trong 30 ngày. Kiểm tra các kế hoạch của chúng tôi hoặc nói chuyện với bộ phận bán hàng để tìm ra kế hoạch phù hợp với bạn.