gpt4 book ai didi

javascript - 如何使用nodejs将数组obj写入文件

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

我正在尝试使用下面的代码,我可以在服务器上写入文件,并且该文件有内容,但是当我下载该文件时,它是空白的。

var file = fs.createWriteStream('./tmp/text.txt');

file.on('error', function(err) { console.log(err) });

rows.forEach(function(v) {
file.write(v + "\r\n");

productExport.DeleteProduct(v.ProductId, function(err){
if(err) throw err;
});
});

file.end();

var file = "./tmp/text.txt";
res.download(file); // Set disposition and send it.

如何下​​载包含所有内容的文件?

最佳答案

您的代码结构方式不适合您想要执行的操作。主要的问题是,在文件流写入完成之前,您使用 res.download() 进行响应。此外,您的 var file 在同一范围内被初始化两次,这也是不正确的。

var file = "./tmp/text.txt";
var writeStream = fs.createWriteStream(file);
writeStream.on('error', err => console.log );

writeStream.on('finish', () => {
return res.download(file); // Set disposition and send it.
});

rows.forEach((v) => {
writeStream.write(v + "\r\n");
productExport.DeleteProduct(v.ProductId, function(err){
if(err) throw err;
});
});

writeStream.end();

如果您对此感到困惑,也许对一般的异步处理感到困惑,this is the defacto answer on SO用于理解 Node.js 中的异步

关于javascript - 如何使用nodejs将数组obj写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40770621/

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