Was ist Node-Postgres?
Offizielle Dokumentation
nodepostgres ist eine Sammlung von node.js-Modulen, die als Schnittstelle zur PostgreSQL-Datenbank verwendet werden. Es unterstützt Rückrufe, Versprechen, Async/Warten, Verbindungspooling, vorbereitete Anweisungen, Cursor, Streaming-Ergebnisse, C/C++-Bindungen, Rich-Type-Analyse und mehr! Wie PostgreSQL selbst verfügt es über viele Funktionen: Diese Dokumentation soll Ihnen den schnellen und korrekten Einstieg erleichtern. Darüber hinaus wird versucht, Anleitungen zu fortgeschritteneren Themen und Randthemen bereitzustellen, sodass Sie die Funktionen von PostgreSQL in node.js vollständig nutzen können.
Wie benutzt man es?
Abhängigkeiten herunterladen
npm install pg
Anweisung ausführen
import { Client } from 'pg'
const client = new Client({
host: 'my.database-server.com',
port: 5334,
database: 'database-name',
user: 'database-user',
password: 'secretpassword!!',
})
await client.connect()
const res = await client.query('SELECT $1::text as message', ['Hello world!'])
console.log(res.rows[0].message) // Hello world!
await client.end()
Zusammenfassung der Problemlösung
Fehler 1: Postgres-Datenbankfehler „err“: {“type“: „DatabaseError“, „message“: „Spalte „xxx error point xxx“ existiert nicht“,
"err":{"type":"DatabaseError","message":"column \"xxx报错点xxx\" does not exist",
Lösung
Wenn Sie auf einen solchen Fehler stoßen, liegt das wahrscheinlich daran, dass etwas mit der Schreibweise Ihres SQL-Satzes nicht stimmt. Überprüfen Sie ihn sorgfältig.
Hier ist ein Beispiel:
const insertApp = await client.query(`INSERT INTO applications
(app_name )
VALUES
('${validResult.appName}')
ON CONFLICT (app_name)
DO NOTHING;
`);
Es wird empfohlen, es auf die folgende Schreibmethode zu ändern
- Node-Postgres-Referenzdokumentation
- String-Verkettungsparameter direkt im Abfragetext können (und tun dies häufig) zu SQL-Injection-Schwachstellen führen.
- node-postgres unterstützt parametrisierte Abfragen und übergibt den Abfragetext und die Parameter intakt an den PostgreSQL-Server, was sicherer ist
- Wenn null und undefiniert parametrisiert sind, werden beide in null konvertiert.
const text = 'INSERT INTO users(name, email) VALUES($1, $2) RETURNING *'
const values = ['brianc', '[email protected]']
const res = await client.query(text, values)
Das ist alles für heute~
- Freunde, ( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝBis morgen~~
- Bitte seid alle jeden Tag glücklich
Jeder ist herzlich eingeladen, im Artikel auf Bereiche hinzuweisen, die einer Korrektur bedürfen~
Das Lernen und die Win-Win-Zusammenarbeit nehmen kein Ende