2017-05-04 23 views
1

PostgreSQLクエリを実行するためにNodejsでpg-promiseパッケージを使用しています。私は実行されたクエリを見たい。特定のクエリ、たとえば、デバッグするクエリは1つだけです。pg-promiseを使用して特定のpostgresqlクエリをログに記録

pg-monitorを使用してイベントをキャッチし、例documentationに記載されているようにイベントを記録することをお勧めします。

pg-monitorを使用しないと、実行された準備済みのクエリを簡単に印刷することができます。私はドキュメントでそれを見ることはできません。

例:

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

どのように得るために、このクエリを印刷するには?

SELECT * FROM table WHERE id = 2 

答えて

2

だけ実行されるプリペアドクエリを印刷する簡単な方法は、

...一般的には、クエリがある - はい、以下を参照してください。 A Prepared Query - いいえ、それらは定義上、サーバー側でフォーマットされています。

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

そして、あなたはpg-monitorを使用せずに、あなたのモジュールで実行されるすべてのクエリを印刷したい場合は、ライブラリを初期化するとき、単にイベントqueryハンドラを追加します。

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

'options'は素晴らしいです。私はまだ完全にそれを探検していません。ありがとう。 – mythicalcoder