我试图得到 - 一些承诺已经执行后 - 一个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