从pg-promise查询中获取结果

问题描述 投票:1回答:1

我正在使用pg-promise处理Node项目。我需要用查询结果来履行承诺,但我无法得到结果。

get2 : function(id) {
    var qrm = pgp.queryResult;
    PG.db.any('SELECT * FROM referentiel_rd_client WHERE id=\'' + id + '\'')
        .then(data => {
            console.log('got query results');
            resolve(data);
        })
       .catch(error => {
           // error; 
        });

但另一个承诺(应该接收数据)永远不会得到任何东西......如何从查询中获得结果? (我可以将它们记录到控制台)。

node.js promise pg-promise
1个回答
2
投票

  • 如果你想预处理结果,最后只返回结果,这就是promises的工作方式: get2: (id) => { return PG.db.any('SELECT * FROM referentiel_rd_client WHERE id=$1', id) .then(data => { console.log('got query results:', data); return data; });

  • 切勿手动格式化查询,使用库附带的查询格式化引擎,否则最终会破坏查询。

然后你会这样称呼它:

get2(123)
    .then(data => {
        // success
    })
    .catch(error => {
        // error
    });
© www.soinside.com 2019 - 2024. All rights reserved.