Ich bin neu zu Knoten und anschließend pg-Versprechen. Was ich in meiner Node-Express-App erreichen möchte, ist eine Route, die als API funktioniert, um ein einzelnes Feldupdate in einer Tabelle in der Datenbank durchzuführen. Dies muss nur eine einzelne Route sein, die mit Tabellenname, Spaltenname, Spaltenwert und Spalten-ID-Wert aufgerufen wird, um zu identifizieren, welche Zeile in der Tabelle aktualisiert werden soll.Wie übergeben Sie Tabellennamen und Parameter mit pg-promise
Dies ist der Code, den ich bisher versucht haben, aber ich kann nicht scheinen, richtig zu machen:
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;
});
})
Leider wird folgende Fehler es wirft:
ERROR: syntax error at or near "$"
Gibt es auch eine Möglichkeit, die Abfragezeichenfolge aus der catch()
-Funktion zu drucken, so dass das Debugging ein wenig einfacher sein kann?
sieht aus wie Ihre Abfrage ist ungültig das $ -Zeichen bezieht sich auf die Parameter ab $ 1 $ 2 usw., die auf das Array params –
Vielen Dank. Wie kann ich den Abfragetext auf der Konsole anzeigen? –
@ FabrizioMazzoni war meine Antwort nicht gut genug? ;) –