Node.js导入JSON到PostgresSQL

问题描述:

我想使用Node.js将JSON文件导入PostgresSQL。我正在使用massive.js来做到这一点。Node.js导入JSON到PostgresSQL

下面是我的JS代码:

var parsedJSON = require('./employeesTest.json'); 
var express = require("express"); 
var app = express(); 
var http = require('http'); 
var massive = require("massive"); 
var connectionString = "postgres://:@localhost/tl"; 

var db = massive.connectSync({ connectionString: connectionString }); 

var insert = function(err, res) { 
for (i = 0; i < parsedJSON.data.length; i++) { 
    db.saveDoc("employees", parsedJSON.data[i]); 
    if (err) { 
     console.log('error: ', err); 
     process.exit(1); 
    }; 
    }; 
}; 

所以。我试图通过JSON循环,然后插入。 我使用这个具有以下JSON:

{ 
"data": [{ 
     "id": 89304, 
     "userName": "[email protected]" 
    }, 
    { 
     "id": 87431, 
     "userName": null 
    }, 
    { 
     "id": 84863, 
     "userName": null 
    }, 
    { 
     "id": 72371, 
     "userName": "[email protected]" 
    } 
    ] 
    } 

我有以下PostgreSQL的结构:

  • 数据库: TL
  • 表:员工
  • :id(类型:Int,序列)
  • :身体(类型:jsonb)

我见过类似的工作按照此人Github上: https://github.com/craigkerstiens/json_node_example

但是我的循环,没有错误,但不会存储任何数据。

有什么我在做根本错误?

另外,有没有'使用Node.js将现有的JSON文件存储到Postgres中的'最佳方式'?我可以在Node.js + Postgres上找到很多信息,但大部分信息都是用于RESTful目的的。

saveDoc是一个异步函数,所以你写你的循环它的方式发送数据,然后立即进行检查未设置err变量。您需要通过saveDoc回调,它将收到任何错误和结果,并在回调中进行错误检查。由于您正在遍历集合并对每个成员执行异步工作,因此请查看async提供的map