使用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);