我对Node.js和编码很新,但我一直在努力
将名为parsed的变量的值写入EarthquakeAdapter
有没有办法做到这一点,因为无论何时我运行它都会创建txt文件,但它有fs.writeFile()
如果这没有任何意义,我提前道歉:
[object Object]
答案 0 :(得分:0)
[object Object] 是从对象到字符串的默认转换。请注意,您的代码的以下部分 -
res.on('data', data => {
body = data.toString();
});
每次为 body 变量指定一个不同的值(覆盖前一个值)。您要做的是在 body 变量上附加每个'data'事件的新数据块。
至关重要的是要理解你没有把你的数据作为一个完整的部分,你把它作为一个流:在每个'on'事件上你只得到它的一部分(并且只在'结束'事件你会将它作为一个整体)因此将它解析为部分完整的数据片段并没有多大意义。
您可以在完成加载时解析数据(在“结束”事件中),但是,因为您无论如何都将响应写入文件,您可以将响应保留为字符串,您没有或不需要无论如何解析它。
我建议改为:
const https = require('https');
const fs = require('fs');
const url =
"https://api.openweathermap.org/data/2.5/weather?zip=${zip},us&APPID=${config.key}";
function yourFunc(zip, config) {
https.get(url, res => {
let result = '';
res.on('data', data => {
result += data;
});
res.on('end', () => {
fs.writeFile('data.text', result);
});
});
}