如何使用pg-promise将数据下载为CSV文件?
db.any(query) .then(data => { //console.log("data: " + JSON.stringify(data)); res.json(data); //res.send("data: " + JSON.stringify(data)); }) .catch(error => { console.log("ERROR:", error) });
是否有可能以CSV格式而不是JSON获取数据?
正如我在评论中所述,这与pg-promise无关,只是执行查询。
这个问题应该被问到 – 如何在PostgreSQL中select一个CSV文件,但是已经有很多答案了:
- 将PostgreSQL的PL / pgSQL输出保存为CSV文件
- 将Postgres表格导出为带有标题的CSV文件
- 如何从命令行打印CSV或TSV格式的PostgreSQL查询结果?
那么对于pg-promise,你会得到如此微不足道的东西:
var values = { delimiter: ',', path: 'd:/temp/users.csv' }; db.none('COPY (SELECT * FROM users) TO ${path} WITH CSV DELIMITER ${delimiter}', values) .then(() => { console.log('Successfully saved as:', values.path); }) .catch(error => { console.log(error); });
如果不是导出select的结果,而是希望从HTTP服务下载它,那么这是一个完全不同的问题。 但是您只需将select的结果转发到HTTP响应中,并将其标记为文件即可。
例子:
- 使用Express从NodeJS Server下载文件