从 pg-promise 查询中获取结果

get result out of a pg-promise query

我正在使用 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; 
        });

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


  • 如果要预处理结果,最后只是return结果, 这就是承诺的工作方式:

    get2: (id) => {
        return PG.db.any('SELECT * FROM referentiel_rd_client WHERE id=', id)
            .then(data => {
                console.log('got query results:', data);
                return data;
            });
    

  • 永远不要手动格式化查询,使用库附带的查询格式化引擎,否则你最终会破坏查询。

然后你会这样称呼它:

get2(123)
    .then(data => {
        // success
    })
    .catch(error => {
        // error
    });