gpt4 book ai didi

javascript - 如何将变量的内容写入 fs.writeFile

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:55 25 4
gpt4 key购买 nike

我对 Node.js 和一般编码相当陌生,但我正在尝试将名为 parsed 的变量的值写入 fs.writeFile()

有什么方法可以做到这一点,因为每当我运行它时,它都会创建 txt 文件,但它有 [object Object]

如果这没有任何意义,我提前道歉:

https.get(`https://api.openweathermap.org/data/2.5/weather?zip=${zip},us&APPID=${config.key}`, res => {

res.on('data', data => {
body = data.toString();
});

res.on('end', () => {
const parseData = JSON.parse(body);
fs.writeFile('data.txt', parsedData)
console.log(parsed_data);
});

});

module.exports = wrappedAll;

最佳答案

[object Object] 是从对象到字符串的默认转换。请注意,在代码的以下部分中 -

res.on('data', data => {
body = data.toString();
});

每次为 body 变量分配不同的值(覆盖之前的值)。您想要做的是在每个“数据”事件上向 body 变量附加一个新数据 block 。

重要的是要了解,您不会将数据作为一个完整的片段获取,而是将其作为流获取:在每个“on”事件中,您仅获得其中的一部分(并且只有在“end”事件中,您才会将其作为一个整体),因此将其解析为部分完整的数据片段并没有真正的意义。

您可以在数据加载完成(在“结束”事件时)时解析数据,但是,因为您无论如何都将响应写入文件,所以您可以将响应保留为字符串,无论如何您都不需要或不需要解析它。

我建议改为执行以下操作:

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);
});
});
}

关于javascript - 如何将变量的内容写入 fs.writeFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49721391/

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