从 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;
});
但是另一个承诺(应该接收数据)永远得不到任何东西......
如何从查询中获取结果? (我可以将它们记录到控制台)。
- 不要做出不必要的承诺,这是一个anti-pattern
如果要预处理结果,最后只是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
});
我正在使用 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;
});
但是另一个承诺(应该接收数据)永远得不到任何东西...... 如何从查询中获取结果? (我可以将它们记录到控制台)。
- 不要做出不必要的承诺,这是一个anti-pattern
如果要预处理结果,最后只是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
});