使用pg-promiselogging特定的postgresql查询

我使用pg-promise包与Nodejs来执行PostgreSQL查询。 我想看看执行的查询。 只有特定的查询,比如说,我只想debugging一个查询。

我可以看到,一个推荐的方法是使用pg-monitor来捕获事件并按照这里在示例文档中提到的那样logging它们。

没有使用pg-monitor ,是否有一个简单的方法来打印执行准备好的查询。 我无法在文档中看到它。

例:

db.query("SELECT * FROM table WHERE id = $/id/", {id: 2}) 

如何打印这个查询产生?

 SELECT * FROM table WHERE id = 2 

有没有简单的方法来打印执行准备好的查询…

一般的查询 – 是的,见下文。 准备好的查询 – 不,根据定义,这些在服务器端格式化。

 var query = pgp.as.format('SELECT * FROM table WHERE id = $/id/', {id: 2}); console.log(query); db.any(query).then(...).catch(...) 

如果你想打印你的模块执行的所有查询,而不使用pg-monitor ,只需在初始化库时添加事件查询处理程序:

 var options = { query: e => { console.log(e.query); } }; var pgp = require('pg-promise')(options);