簡體   English   中英

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);

在我的角度視圖( 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

非常感謝所有對此發表評論的人!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM