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
。