私はノードを使い慣れており、その後pg-promiseです。私のノードエクスプレスアプリケーションで達成しようとしているのは、DB内のテーブル内で単一のフィールド更新を行うapiとして機能するルートです。これは、表で更新する行を識別するために、表名、列名、列値および列ID値とともに呼び出される単なるルートでなければなりません。pg-promiseでテーブル名とパラメータを渡す方法
これは私がこれまで試してみましたコードですが、私はそれが正しいように見えることはできません。
router.post('/update_db_field', function (req, res, next) {
db.one('update $table~ set $dbcol~=$dbcolval~ where $dbcolid~=$dbcolidval~ returning $colid~', [
req.body.table,
req.body.dbcol,
req.body.dbcolid,
req.body.dbcolval,
req.body.dbcolidval
]).then(function (data) {
console.log(data)
res.send(data)
}).catch(function (error) {
console.log("ERROR:", error.message || error); // print error;
});
})
は、残念ながら、それは次のようなエラーがスローされます。
ERROR: syntax error at or near "$"
もあります方法は、catch()
関数からクエリ文字列を印刷するので、デバッグは少し簡単にすることができますか?
あなたのクエリが無効であるように見える$記号は、$ 1 $ 2から始まるパラメータを参照するので、配列のパラメータにマップされます –
ありがとうございました。コンソール上に表示されたクエリテキストを確認するにはどうすればよいですか? –
@FabrizioMazzoniは私の答えが十分ではなかったのですか? ;) –