var csv = require('fast-csv');
var fs = require('fs');
const app = express();
exportCSVfile: function(req, res){
var ws = fs.createWriteStream('my.xls');
console.log(req.body.save);
session = req.session;
if(session.uniqueID){
if(session.uniqueID.access == 2){
csv.write([
["a1","b1"],
["a2","b2"]
],{headers:true}).pipe(ws);
}
}
}
这是我当前的代码,我可以获取csv文件,但不是直接写在我的磁盘上,我想让浏览器下载它。我怎么能这样做?
答案 0 :(得分:1)
首先写出一个响应标题,设置适当的内容类型和下载处置。
res.writeHead(200, {
'Content-Type': 'text/csv',
'Content-Disposition': 'attachment; filename=' + csvFileName
});
然后只需将csv()创建的流传输到响应。
csv.write([...]).pipe(res);
答案 1 :(得分:0)
您可以使用attachment()
功能将文件附加到响应中。你可以试试这样的东西
var stream = fs.createReadStream(filename);
res.attachment(filename);
stream.pipe(res);