将请求同步到node.js中的数据库

时间:2017-03-01 10:53:49

标签: javascript node.js postgresql redis

我有一个postgres表TABLE_A,如下所示:

TABLE_A:
id
name

我填充表格如下:

INSERT INTO TABLE_A VALUES(1, 'one')
INSERT INTO TABLE_A VALUES(2, 'two')
INSERT INTO TABLE_A VALUES(3, 'three')

然后我有一个redis DB,其中一行包含以下内容:

{
"idsAndRoles":
    [
        {"id":1,"roles":["A","B"]}
        ,{"id":2,"roles":["A"]}
    ]
}

现在,上面redis中的条目必须与postgres中的内容“合并”。我使用node来做到这一点。

所以我要做的第一件事就是返回一个像这样的新Promise:

return new Promise(function (resolve) {
    redis.hget("myredisdb", "mykey", function(err, res){
        //Here i get from redis the row I described above
    });
}

在你看到评论的地方,我做了一次迭代来获取所有id,对于每个id,我也可以通过角色来到数组。 但是,我仍然需要“合并”postgres表TABLE_A。 基本上,在操作结束时,我需要一个具有上述数据的结构:

{
"idsAndRoles":
    [
        {"id":1, "name": "one", "roles":["A","B"]}
        ,{"id":2,"name": "two", "roles":["A"]}
    ]
}

或多或少,要么将数据从redis合并到postgres,要么反之亦然。

问题在于我无法创建循环并且对于每个元素查询postgres,因为我使用带有异步操作的节点。 解决这种情况的方法是什么?我相信一定有很多人都有同样的问题。

0 个答案:

没有答案