node.js - 使用 Azure 函数 nodejs 导出 csv 文件
问题描述
我正在尝试导出一个 csv 文件(从 mongodb 中提取数据)。我的前端是 ionic(角度),后端是 Azure 函数(nodejs),我希望前端能够下载这个 csv 文件。
我的代码:
const { db, connection } = await createMongoClient();
const collection = db.collection("dummy");
try {
const data = await collection.find({}).toArray();
connection.close();
const ws = fs.createWriteStream(Date.now() + ".csv");
fastcsv
.write(data, { headers: true })
.on("finish", function () {
console.log("Write CSV successfully!");
})
.pipe(ws);
res.status(201).json({ success: true });
} catch (err) {
res.status(500).json({ err, success: false });
}
上面创建了一个 csv 文件,但它没有被前端下载。
解决方案
首先,添加
res.status(201).json({ success: true }); --- remove this line
res.status(200).send(file being created as csv);
在您的服务的前端创建一个下载方法,该方法在用户单击时请求文件;
this.http.get('REST end point', { responseType: 'blob'}).subscribe(res => {
window.open(window.URL.createObjectURL(res));
});
检查这是否有效!
推荐阅读
- c# - C# Reqex 用于新行,后跟 char 和 10 位数字
- python - 具有可变数量参数的 Python 函数
- spring-boot - 如何使用 Spring Data DynamoDB 在应用程序启动时自动创建 DynamoDB 表?
- .htaccess - 请求您的用户名和密码的 .htaccess 错误。该网站说:“受保护的目录”
- ios - Xcode 返回链接器错误“找不到 -lFirebaseAuth 的库”
- wordpress - 如何在一个域上设置多个 wordpress 安装?
- tree - MS VSTS 如何在树中查看需求
- python - Pandas:如何正确执行 df2 = df1 中的列?
- angular - Angular HttpRequest 无法将类字段设置为我的数据值
- sapui5 - 加载图像有问题