如何使用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下载文件