Cách đăng nhập một đối tượng trong Node

Ghi nhật ký các đối tượng trong Node.js

Khi bạn gõconsole.log()vào một chương trình JavaScript chạy trong trình duyệt, điều đó sẽ tạo một mục nhập đẹp trong Bảng điều khiển trình duyệt:

Khi bạn nhấp vào mũi tên, nhật ký sẽ được mở rộng và bạn có thể thấy rõ các thuộc tính của đối tượng:

Trong Node, điều tương tự cũng xảy ra.

Chúng tôi không có sự xa xỉ như vậy khi chúng tôi đăng nhập một thứ gì đó vào bảng điều khiển, bởi vì điều đó sẽ xuất đối tượng đó ra shell nếu bạn chạy chương trình Node theo cách thủ công hoặc vào tệp nhật ký. Bạn nhận được một biểu diễn chuỗi của đối tượng.

Bây giờ, tất cả đều ổn cho đến một mức độ làm tổ nhất định. Sau hai cấp độ lồng nhau, Node từ bỏ và in[Object]như một trình giữ chỗ:

const obj = {
  name: 'Flavio',
  age: 35,
  person1: {
    name: 'Tony',
    age: 50,
    person2: {
      name: 'Albert',
      age: 21,
      person3: {
        name: 'Peter',
        age: 23
      }
    }
  }
}
console.log(obj)

{ name: ‘Flavio’, age: 35, person1: { name: ‘Tony’, age: 50, person2: { name: ‘Albert’, age: 21, person3: [Object] } } }

Làm thế nào bạn có thể in toàn bộ đối tượng?

Cách tốt nhất để làm như vậy, trong khi vẫn giữ được bản in đẹp, là sử dụng

console.log(JSON.stringify(obj, null, 2))

Ở đâu2là số khoảng trắng cần sử dụng để thụt lề.

Một tùy chọn khác là sử dụng

require('util').inspect.defaultOptions.depth = null
console.log(obj)

nhưng vấn đề là các đối tượng lồng nhau sau cấp 2 giờ đã bị san phẳng và đây có thể là vấn đề với các đối tượng phức tạp.

Tải xuống miễn phí của tôiSổ tay Node.js


Các hướng dẫn nút khác: