使用pg-promise记录特定的postgresql查询[英] Log specific postgresql query using pg-promise

本文是小编为大家收集整理的关于使用pg-promise记录特定的postgresql查询的处理方法,想解了使用pg-promise记录特定的postgresql查询的问题怎么解决?使用pg-promise记录特定的postgresql查询问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在使用带有 Nodejs 的 pg-promise 包来执行 PostgreSQL 查询.我想查看执行的查询.只有特定的查询,比如我想要调试的一个查询.

我可以看到一种推荐的方法是使用 pg-monitor 来捕获事件并按照示例中所述记录它们 文档.

不使用 pg-monitor,有没有简单的方法来打印执行的准备好的查询.我在文档中看不到.

例子:

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

如何打印这个查询来产生?

SELECT * FROM table WHERE id = 2

推荐答案

有没有一种简单的方法来打印已执行的准备好的查询...

一般的查询 - 是的,见下文.A Prepared Query - 不,根据定义,这些是在服务器端.

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

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

const initOptions = {
  query(e) {
    console.log(e.query);
  }
};
const pgp = require('pg-promise')(initOptions);

本文地址:https://www.itbaoku.cn/post/1763865.html