大家好!我正在尝试在nodejs中构建Google Pagespeed客户端。 我得到一个json文件,其中包含任何url的语法错误。例如:url:http://www.bbc.com/,错误:enter image description here json文件:enter image description here
我只需要属性“ruleGroups”。我尝试将其解压缩为jsonpath.query(d,'$ .ruleGroups') - 没有成功。 请帮助理解,对不起,如果问题是dilettian。
let key = 'key';
let url = 'http://www.bbc.com/';
let strategy = 'desktop';
https.get({
host: 'www.googleapis.com',
path: '/pagespeedonline/v4/runPagespeed?url=' + encodeURIComponent(url) +
'&key='+key+'&strategy='+strategy
}, function (res) {
console.log ("statusCode:", res.statusCode);
console.log ("headers: ", res.headers);
res.on ('data', function (d) {
let json = JSON.parse(d);
fs.appendFile('log.txt', json);
});
}). on ('error', function (e) {
console.error (e);
});
答案 0 :(得分:1)
您可能需要累积所有数据,然后在“结束”事件中解析:
let rawData = '';
res.on('data', (chunk) => { rawData += chunk; });
res.on('end', () => {
try {
const parsedData = JSON.parse(rawData);
console.log(parsedData);
} catch (e) {
console.error(e.message);
}
});
更多信息:https://nodejs.org/api/http.html#http_http_get_options_callback