Verwenden von Node-Postgres zum Herstellen einer Verbindung zu Postgres und Anleitung zur Fehlerberichterstattung im Node.js-Projekt

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

Fügen Sie hier eine Bildbeschreibung ein

Begrüßen Sie die vorbeikommenden Brüder und Schwestern, um eine bessere Meinung abzugeben ~~

おすすめ

転載: blog.csdn.net/tangdou369098655/article/details/133829532