我試圖得到 - 一些承諾已經執行後 - 一個CSV結果與一個狀態響應一起有詳細信息。NodeJS - 提示下載CSV文件
響應確實爲我提供了CSV的數據,但似乎無法讓瀏覽器將此數據下載到CSV文件中。
router.post('/getSalesOrders', function (request, response) {
var data = request.body;
salesOrderActions.retrieveSalesOrders(data) //
.then(function (result) {
response.setHeader('Content-disposition', 'attachment; filename=testing.csv');
response.set('Content-Type', 'text/csv');
response.json(result[0].message).send(result[0].file);
})
.catch(function (err) {
console.log(err);
if (err.statusCode) {
response.json(err);
}
else {
var error = output.getCriticalErrorResult(c.titles.SERVICE_CRITICAL_ERROR, c.messages.UNKNOWN_ERROR, err.message);
response.json(error);
}
});
});
我的結果對象獲取的salesOrderActions
創建:
我在這裏使用NPM包json2csv
var fields = ['id',.....];
var csv = csvParser({ data: unmatchedLines, fields: fields });
return {
file: csv,
message:
output.getSuccessResult(
titles.SALES_ORDER_SUCCESS_RETRIEVAL,
salesDataForModel.identifier
)
}
所以我的消息似乎並沒有發送s and我確實得到了CSV數據,但不能作爲要下載的文件。 我該如何管理?
一點題外話,也許,我的前端是React
編輯
響應與octed標題:
這是給我同樣的結果,我可以在響應中看到CSV數據,但沒有下載文件... – Tikkes
你可以試試這個:res.setHeader('Content-type','application/octet-stream'); – Ediruth