MEAN 堆栈如何向用户发送文件
MEAN stack how to send a user a file
我在 express 控制器上有一些代码,如下所示:
// Correct file path and write data
var currentDate = new Date();
var storagePath = path.join(__dirname,'../../public/reports/', 'Risk-Log.csv');
var source = es.readArray(riskLogs);
source.pipe(jsonCSV.csv(options)).pipe(fs.createWriteStream(storagePath));
console.log('Completed csv export to ' + storagePath);
// Send file back
res.sendFile(storagePath);
在我的 angular 视图 (log.client.view.html
) 中,我有以下内容:
<a href="/#!/my-logs/download" class="btn btn-default">Download CSV</a>
当我单击该按钮时...文件已正确生成,但文件永远不会发送回用户(他们可以告诉)。
如果我查看控制台调试器,我会得到以下信息:
Resource {$promise: Object, $resolved: false, $get: function, $save: function, $query: function…}
我还没有使用 Angular 进行任何路由或任何特殊操作,因为它正在访问 Node (express) 控制器并生成文件。我想知道这是否是我应该在 Angular?
中做的事情
我想要实现的是,当用户单击该按钮时,CSV 下载。
任何帮助将不胜感激。
由于使用 express res.send() 是一个缓冲区....您必须像这样发送内容类型:
res.set('Content-Type', 'text/csv');
res.set('Content-Disposition', 'attachment');
res.send(csv); // csv object created with json-csv npm module
非常感谢所有对此发表评论的人!
我在 express 控制器上有一些代码,如下所示:
// Correct file path and write data
var currentDate = new Date();
var storagePath = path.join(__dirname,'../../public/reports/', 'Risk-Log.csv');
var source = es.readArray(riskLogs);
source.pipe(jsonCSV.csv(options)).pipe(fs.createWriteStream(storagePath));
console.log('Completed csv export to ' + storagePath);
// Send file back
res.sendFile(storagePath);
在我的 angular 视图 (log.client.view.html
) 中,我有以下内容:
<a href="/#!/my-logs/download" class="btn btn-default">Download CSV</a>
当我单击该按钮时...文件已正确生成,但文件永远不会发送回用户(他们可以告诉)。
如果我查看控制台调试器,我会得到以下信息:
Resource {$promise: Object, $resolved: false, $get: function, $save: function, $query: function…}
我还没有使用 Angular 进行任何路由或任何特殊操作,因为它正在访问 Node (express) 控制器并生成文件。我想知道这是否是我应该在 Angular?
中做的事情我想要实现的是,当用户单击该按钮时,CSV 下载。
任何帮助将不胜感激。
由于使用 express res.send() 是一个缓冲区....您必须像这样发送内容类型:
res.set('Content-Type', 'text/csv');
res.set('Content-Disposition', 'attachment');
res.send(csv); // csv object created with json-csv npm module
非常感谢所有对此发表评论的人!