javascript – pipe()数据到Json文件或PostgreSQL

我有这个代码:

var MetaUtil = require('osm-meta-util');
var meta = MetaUtil({
                      'delay': 1000,
                      'start': '000598424', //file number
                      'end': '001122000' //file number
                   }).pipe(process.stdout) //outputs to console

如何将输出传递给Json文件,以便稍后将其上传到Postgresql数据库.

带着敬意

安德烈

最佳答案 创建一个文件可写流和管道数据:

var fs = require('fs');
var file = fs.createWriteStream('./output.json')
MetaUtil({
    'delay': 1000,
    'start': '000598424', //file number
    'end': '001122000' //file number
}).pipe(file);

反之,使用可读流从文件中读取数据,并根据您使用的数据库框架将其插入数据库.

我不熟悉postres,但pg-copy-streams似乎是为它提供此功能的:

var fs = require('fs');
var pg = require('pg');
var copyFrom = require('pg-copy-streams').from;

pg.connect(function(err, client, done) {
  var stream = client.query(copyFrom('COPY my_table FROM STDIN'));
  var fileStream = fs.createReadStream('some_file.tsv')
  fileStream.on('error', done);
  fileStream.pipe(stream).on('finish', done).on('error', done);
});
点赞