因此,在HTTPS云函数中,我从数据库中获取一个对象数组,我想从中生成一个XLS文件并在响应中发送它。我使用的是js2excel库,但它不会生成下载文件。
const json2excel = require('js2excel');
exports.getUserOnXlsFile = functions.https.onRequest((req, res) => {
cors(req, res, () => {
return getFromDataBaseHelper()
.then(listFromDatabase =>{
try {
var xlsFile = json2excel(listFromDatabase);
res.send(xlsFile);
} catch (e) {
console.error('export error', e);
res.status(500).send(e);
}
})
.catch(error => {
console.error('Error getting chefs:', error);
res.status(500).send(error);
})
});
});
我找到了这样的解决方法:
exports.getUserOnXlsFile = functions.https.onRequest((req, res) => {
cors(req, res, () => {
return getFromDataBaseHelper()
.then(response =>{
try {
const csv = json2csv(response)
res.setHeader(
"Content-disposition",
"attachment; filename=UserList.csv"
)
res.set("Content-Type", "text/csv")
res.status(200).send(csv)
} catch (e) {
console.error('export error', e);
res.status(500).send(e);
}
})
.catch(error => {
console.error('Error getting user:', error);
res.status(500).send(error);
})
});
});
不太好,不可怕。