node.js - 使用 pg-promise 记录特定的 postgresql 查询

标签 node.js postgresql pg-promise

我正在使用 pg-promise与 Nodejs 打包以执行 PostgreSQL 查询。我想查看执行的查询。仅特定查询,例如,我想要调试的一个查询。

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

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

例子:

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

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

SELECT * FROM table WHERE id = 2

最佳答案

is there a simple way to just print the prepared query that is executed...

一般查询 - 是的,请参见下文。 Prepared Query - 不,根据定义,这些是在服务器端格式化的。

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

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

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

关于node.js - 使用 pg-promise 记录特定的 postgresql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43780737/

相关文章:

node.js - pg-promise - 程序示例

javascript - pg-promise 在 UPDATE SET 语句中使用命名参数

c - 如何在 Node.js 中编写基于 Web 的 GUI 并连续调用 C 程序?

Node.js - Socket.io - 问题 "maximum concurrent connections"

javascript - 如何在 Jhipster Angular 生成的应用程序上使用 Electron ?

sql - 我可以试运行/沙盒 sql 命令吗?

ruby - 尝试生成一个随机字符串以作为 client_number 保存到 PG 表 Rails 4,PGSQL

node.js - SockJS多路复用示例404index.html未找到

django: IntegrityError: 重复键值违反唯一约束

sql - 如果为列提供的值不为空,则可选列更新