node.js - 如何在 nodejs 中使用 PostgreSQL 从 nodejs 导出 csv 文件

标签 node.js postgresql csv heroku

nodejs 文件在 Heroku 上,我使用 PostgreSQL 作为数据库 我想从 View 中导出一个 csv 文件:

//我的 PostgreSQL 查询

var copyTo = require('pg-copy-streams').to; 
var csv = require('csv');
var fs = require('fs');

var stream =  client.query(copyTo('COPY (SELECT * FROM v_metric) TO
STDOUT WITH CSV HEADER DELIMITER as \'|\''));

//导出为csv

csv().from(stream.pipe(process.stdout,{ end: false)).to(fs.createWriteStream('sample.csv'))

我没有任何结果,sample.csv 是空的。

有什么想法吗?

提前谢谢你

最佳答案

您可以使用 pg-copy-streams专门为此制作的 npm 模块:

    let data = '', copyTo = require('pg-copy-streams').to;
    pool.connect(function(pgErr, client, done) {
      if(pgErr) {
        //handle error
        return;
      }
      var stream = client.query(copyTo(`COPY (${query}) TO STDOUT With CSV HEADER`));
      stream.on('data', chunk => {
        data += chunk;
      })
      stream.on('end', response => {
        console.log(data)
        done();
      });
      stream.on('error', err => {
        done();
      })
    })

希望这对您有所帮助。

关于node.js - 如何在 nodejs 中使用 PostgreSQL 从 nodejs 导出 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21878869/

相关文章:

java - 在 Java 中将 CSV 文件转换为 JSON 对象

node.js - Hubot CronJob函数

python - 使用 SQLAlchemy 在 POSTGRES 中计算 DATEDIFF

sql - SQL中的 ":1"、 ":2"是什么意思?

mysql - 在Mysql中导入CSV不起作用

python - 打印到 CSV 会导致每个字符之间有一个空格?

node.js - PM2 不适用于 NodeJS (Heroku)

node.js - 如何在 nodejs 中从 goDaddy 安装 SSL 证书?

javascript - 等待 Promise 在 emitter.on 监听器函数中解析

sql - 什么时候适合使用index_scan来获取已经排序的数据?