Node.js 使用express js导出CSV文件,并由浏览器下载
这是我目前的代码,我可以得到csv文件,但不是直接写在我的磁盘上,我想让浏览器下载它。如何才能做到这一点?首先写出一个响应标题,设置适当的内容类型和下载配置Node.js 使用express js导出CSV文件,并由浏览器下载,node.js,csv,express,Node.js,Csv,Express,这是我目前的代码,我可以得到csv文件,但不是直接写在我的磁盘上,我想让浏览器下载它。如何才能做到这一点?首先写出一个响应标题,设置适当的内容类型和下载配置 var csv = require('fast-csv'); var fs = require('fs'); const app = express(); exportCSVfile: function(req, res){ var ws = fs.createWriteStream('my.xls'); console.
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()创建的流传输到响应
res.writeHead(200, {
'Content-Type': 'text/csv',
'Content-Disposition': 'attachment; filename=' + csvFileName
});
首先写出一个响应头,为下载设置适当的内容类型和配置
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()创建的流传输到响应
res.writeHead(200, {
'Content-Type': 'text/csv',
'Content-Disposition': 'attachment; filename=' + csvFileName
});
您可以使用
attachment()
函数将文件附加到响应。你可以试试这样的
csv.write([...]).pipe(res);
您可以使用
attachment()
函数将文件附加到响应。你可以试试这样的
csv.write([...]).pipe(res);
我不确定我是否理解,但您是否希望通过express将csv文件发送到浏览器以便浏览器下载?我不确定我是否理解,但您是否希望通过express将csv文件发送到浏览器以便浏览器下载?