gpt4 book ai didi

javascript - Node js为什么在与字符串一起记录时会折叠对象?

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:22 24 4
gpt4 key购买 nike

我正在做一些基本的 JSON 解析,并想知道为什么 Node js 在与字符串一起记录时会折叠对象

例如,在下面的代码中,如果我转到 console.log(processedData) ,它不会折叠对象并显示整个字符串,但如果我转到 console.log('Body: ' +processedData) ,它会折叠对象并转到 [object Object][object Object]....我知道如何使用 util 再次展开它们,但我对它背后的逻辑很好奇,因为我对 Node 还很陌生。我想我可能会错过一些东西。

const http = require('http');
const util = require('util');

var options = {
host: 'http://nodejs.org/dist/index.json'
// host: 'en.wikipedia.org',
// path: '/w/api.php?action=query&list=allpages&apfrom=Imperial&aplimit=500&format=json'
};

var req = http.get('http://nodejs.org/dist/index.json', function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));

let body = '';
res.on('data', function(chunk) {
body += chunk;
}).on('end', function() {
let processedData = JSON.parse(body);
console.log('Body : ' + processedData);
console.log(typeof body);
})
});

req.on('error', function(e) {
console.log('ERROR: ' + e.message);
});

最佳答案

当你打电话时

console.log(processedData)

您将整个对象传递给 console.log 以便它完成它的任务。但是,当您调用

console.log('Body: ' + processedData)

您正在将 'Body: ' +processedData 的结果传递给 console.log。此表达式的计算会导致 processedData 转换为其字符串表示形式,如果您尚未在对象上定义 toString,则该字符串表示形式只是 [object Object],因此您会看到 Body: [object Object] 被记录。

实现您想要的效果的最简单方法是将它们作为单独的参数传递:

console.log('Body: ', processedData)

关于javascript - Node js为什么在与字符串一起记录时会折叠对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42553758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com