注:この答えは、もはや有効ではないネイティブNested Named Parametersをサポートし始めpg-promiseのv6.10.0、以来。
質問に記載されているコード例は、そのまま動作します。
のみpg-promiseのために前v6.10.0
にライブラリが唯一の名前付きパラメータをフォーマットし、それは少なくとも直接ではなく、そのように、したがって、いや、あなたがそれを行うことができない、それらを評価しません。
しかし、あなたは機能して、クエリの書式設定エンジンへのサブプロパティを使用可能にすることができます
var obj = {
name: 'John',
address: {
postcode: 'abc'
},
addrCode: a => a.address.postcode // alias for accessing a sub-property
};
、その後WHERE postcode = ${addrCode}
を使用しています。
も
this
作品を通じて
し、古い/ ES5構文、:
var obj = {
name: 'John',
address: {
postcode: 'abc'
},
addrCode: function(/*a*/) {
// a = this (can use both)
return this.address.postcode;
}
};
UPDATE
クライアント側の評価作業を行うことが可能であるが、唯一$1, $2, ...
パラメータを持つ:
db.query('... postcode = $1 AND name = $2', [obj.name, obj.address.postcode]);
注:${obj.address.postcode}
のような評価は直接使用できません値が正しくエスケープされないため、クエリ文字列内に
回答が更新されました。ライブラリは[v6.10.0](https://github.com/vitaly-t/pg-promise/releases/tag/v.6.10.0)以降、ネストされたプロパティをサポートしています。 –