2017-05-21 59 views
0

私は、ノードとpg-promiseを使って複数のpostgresデータベースをクエリするAPIを書いています。pgPromiseクエリの結果からSQL文を実行する

クエリ結果から実行されたSQL文を取得することに興味があります。コンソールにpg-monitorのようなものが出力されます。私はpg-monitorをセットアップして、必要なデータを取得するために使用できるsetLogメソッドがあることに気づいたが、クエリを実行している場所から同じデータを取得できれば完璧だろう。

これは、APIがクエリ結果と実行されたSQLのようなメタデータの両方を返すことを可能にする点です。これは可能ですか?ありがとう!

答えて

0

私はクエリを実行している場所から同じデータを取得できれば完璧です。この場合

あなたは、クエリを自分でformatそれをログに記録し、クエリメソッドにそれを渡すことができます:

var query = pgp.as.format('SELECT * FROM table WHERE id = $1', 123); 
console.log('QUERY:', query); 
db.any(query).then().catch() 

すべてのクエリメソッドは下にこのフォーマット機能を使用します。

しかし、違いに注意してください。クエリの書式設定に問題がある場合、問合せメソッドはcatchセクションにレポートし、as.formatファンクションを使用するとエラーが発生します。

+0

ありがとう、それは私が探していたものです!実際にはQueryFilesを使用してJSとSQLを分離しているので、QueryFileオブジェクトの 'query'プロパティからSQLを取得できます。 –

+0

@IvanKovićいいえ、あなたはすべきではありません! 'QueryFile'オブジェクトを' format'に直接渡すべきです。 –

+0

それをキャッチするために感謝!それは迅速かつ間違った考えでした:) –

関連する問題