如何将变量的内容写入 fs.writeFile
How do i write the contents of a variable into fs.writeFile
我对 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 变量分配不同的值(覆盖之前的值)。你想要做的是在每个 'data' 事件上向 body 变量附加一个新的数据块。
了解您获取的数据不是一个完整的片段,而是一个流:在每个 'on' 事件中,您只能获取其中的一部分(并且仅在 'end' 事件你将把它作为一个整体)所以将它解析为部分完整的数据片段真的没有意义。
您可以在数据加载完成时(在 '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);
});
});
}
我对 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 变量分配不同的值(覆盖之前的值)。你想要做的是在每个 'data' 事件上向 body 变量附加一个新的数据块。
了解您获取的数据不是一个完整的片段,而是一个流:在每个 'on' 事件中,您只能获取其中的一部分(并且仅在 'end' 事件你将把它作为一个整体)所以将它解析为部分完整的数据片段真的没有意义。
您可以在数据加载完成时(在 '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);
});
});
}