我有一个带有 Node 和 Express 的 API 后端。我正在尝试从前端获取一些过滤数据并创建一个 CSV 文件并为用户下载它。我一直在使用json2csv。我能够正确创建数据文件,并且当我在我的快速路线中使用该文件时,我下载了一个只显示未定义的文件。起初,我认为这是一个异步问题,但在使用 setTimeout 作为测试以查看这是否是一个问题后,我仍然得到未定义的数据文件。控制台记录“csvData”显示正确的数据。
快速下载文件的路径。
app.post('/api/downloads/filtered', (req, res) => {
let fields = [];
fields = Object.keys(req.body[0])
const filteredData = req.body;
const json2csvParser = new json2csv({fields: fields});
const csvData = json2csvParser.parse(filteredData);
console.log(csvData)
fs.writeFile('./report.csv', csvData, (err) => {
if (err) {
console.log(err);
}
else {
console.log('created report.csv');
res.download('./report.csv');
}
})
})
我在前端使用 Vue,单击按钮时获取文件,不确定是否应该包含该文件。