首页 > 解决方案 > 如何在nodejs中打印[object Object]中的完整数据

问题描述

我有一个脚本可以使用 Chrome 开发工具打印页面的网络响应。脚本是这样的:

 browser.cdp('Network', 'enable')
    browser.on('Network.responseReceived', (params) => {
        console.log(`Loaded ${params.response}`)
    })
    browser.url('https://www.google.com')
})

但是在console.log中,它会打印出来

'[对象对象]'

我尝试了不同的方法,例如-

  console.log('Status: ' + util.inspect(`${params.response}`))
  console.log("Session: %j", `${params.response}`);
  console.log(`Loaded ${params.response}`)
  console.dir(`${params.response}`, { depth: null });

仍然没有运气。如何打印该对象内的所有内容。我需要打印并将该对象数组中的所有内容保存到 har 文件中。请让我知道我该怎么做。

标签: node.js

解决方案


默认情况下,对象不会被深度记录。可能是因为可能存在循环属性。当你写:

console.log(`Loaded ${params.response}`) // Loaded [object Object]

它类似于:

console.log(params.response.toString()) // [object Object]

相反,使用JSON.stringify()

const object = {property: 'value'}

console.log(object.toString()) // [object Object]
console.log(JSON.stringify(object)) // {property: "value"}

您还可以指定输出格式的格式以便更好地阅读:

console.log(JSON.stringify(object), null, 2) // Format with 2 spaces identation

//  {
//    "property": "value"
//  }

推荐阅读