Von einer Node.js-Anwendung auf PostgreSQL-Datenbanken zugreifen


Per Node.js-Anwendung auf eine PostgreSQL-Datenbank zugreifen

Darum geht‘s

In diesem Tutorial zeigen wir Ihnen, wie Sie über eine Node.js-Anwendung auf eine PostgreSQL-Datenbank zugreifen können.

Node.js ist eine der bekanntesten asynchronen ereignisgesteuerten JavaScript-Laufzeiten. In den letzten Jahren hat sie sich so weit verbreitet, dass sie nun eine unverzichtbare Plattform für die Software-Entwicklung ist. Weitere Informationen zu den Funktionen der Plattform Node.js finden Sie auf der offiziellen Homepage.

PostgreSQL ist eine der bekanntesten Datenbanken der Welt. Ihre weite Verbreitung gehen in erster Linie auf die Nutzerfreundlichkeit und den Open Source-Ansatz zurück. Mehr Informationen zu den Möglichkeiten mit PostgreSQL finden Sie in der offiziellen Dokumentation.

 

Voraussetzungen

Dieses Tutorial setzt voraus, dass Sie eine OVHcloud Public Cloud Compute-Instanz, einen VPS oder einen Bare Metal-Server mit Ubuntu 22.04 nutzen und Grundkenntnisse im Umgang mit der Befehlszeile haben. In diesem Tutorial haben wir eine Public Cloud Compute-Instanz verwendet. Möchten Sie sich unterstützen lassen, um eine Public Cloud-Instanz mit Ubuntu 22.04 einzurichten? Folgende Anleitung hilft weiter: Erste Public Cloud Instanz erstellen und sich darauf anmelden.

Um zu beginnen, müssen Node.js und Postgre auf Ihrer Instanz installiert sein. Bei Bedarf können Ihnen die folgenden Anleitungen helfen.

Node.js auf Ubuntu 22.04 installieren
PostgreSQL auf Ubuntu 22.04 installieren.

Mit einem IDE können Sie die in diesem Tutorial beschriebene Bearbeitung von Quelldateien einfacher gestalten. Zwei Beispiele dafür sind VS Code und WebStorm.

 

Anleitung

Installieren Sie die Bibliothek node-postgres von Node.js, damit sie von einer Node.js-Anwendung verwendet werden kann.

Die aktuellste verfügbare LTS-Version der Bibliothek war zum Zeitpunkt der Erstellung dieses Tutorials node-postgres 8.7.3.

 

Projekt starten

Erstellen Sie einen Ordner mit dem Namen nodejs-pg-example und führen Sie den NPM-Befehl init aus:

mkdir nodejs-pg-example cd nodejs-pg-example npm init

Die Ausgabe sollte so aussehen:

$ mkdir nodejs-pg-example
$ cd nodejs-pg-example
$:~/nodejs-pg-example$ npm init
Dieses Hilfsprogramm führt Sie durch die einzelnen Schritte beim Erstellen einer package.json-Datei.
Es behandelt die häufigsten Aspekte und versucht, sichere Standardwerte zu ermitteln.

Eine umfassende Dokumentation zu diesen Feldern finden Sie unter „npm help init“;
hier werden die genauen Funktionen erklärt.

Mit „npm install “ können Sie danach ein Paket installieren und
als Abhängigkeit (Dependency) in der Datei package.json speichern.

Beenden können Sie jederzeit mit ^C.
Paketname: (nodejs-pg-example) 
Version: (1.0.0) 
Beschreibung: Testprojekt für den Zugriff auf PostgreSQL über eine Node.js-Anwendung
Einstiegspunkt: (index.js) 
Testbefehl: 
git repository: 
Schlüsselwörter: 
Autor: OVHcloud
Lizenz: (ISC) 
Im nächsten Schritt wird geschrieben an: /home/ubuntu/nodejs-pg-example/package.json:

{
  "name": "nodejs-pg-example",
  "version": "1.0.0",
  "description": „Testprojekt für den Zugriff auf PostgreSQL über eine Node.js-Anwendung“,
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "OVHcloud",
  "license": "ISC"
}


Ist das OK? (ja) ja

Eine package.json-Datei wurde im Ordner nodejs-pg-example erstellt:

{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Testprojekt für den Zugriff auf PostgreSQL über eine Node.js-Anwendung", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC" }

 

PostgreSQL-Elemente erstellen

Es wird davon ausgegangen, dass Sie Ihre PostgreSQL-Datenbank bereits installiert haben.

Erstellen Sie eine Tabelle mit dem Namen example_table:

CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50));

Die Ausgabe sollte so aussehen:

foo@ubuntu:~$ psql -d example
psql (14.2 (Ubuntu 14.2-1ubuntu1))
Hilfe erhalten Sie, wenn Sie „Hilfe“ eingeben.

example=> CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50));
CREATE TABLE

Geben Sie dann Daten ein:

INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.'); INSERT INTO example_table (id, message) VALUES (2, '👋 Hallo, Welt.');

Die Ausgabe sollte so aussehen:

example=> INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.');
INSERT 0 1
example=> INSERT INTO example_table (id, message) VALUES (2, '👋 Hallo, Welt');
INSERT 0 1
exit
foo@ubuntu:~$ 

 

Die Anwendung für den Zugriff auf die PostgreSQL-Datenbank konfigurieren

Als Nächstes fügen wir die Dependency zur node-postgres-Bibliothek in der package.json-Datei hinzu. Gehen Sie dazu in den Ordner nodejs-pg-example und fügen Sie die Bibliothek mit dem Befehl „npm“ hinzu:

npm install pg

Die Ausgabe sollte so aussehen:

~/nodejs-pg-example$ npm install pg

in 2s 15 Pakete hinzugefügt und 16 Pakete geprüft

0 Schwachstellen gefunden

Die package.json-Datei wurde durch NPM aktualisiert:

{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Testprojekt für den Zugriff auf PostgreSQL über eine Node.js-Anwendung", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC", "dependencies": { "pg": "^8.7.3" } }

Nun können Sie den Javascript-Code schreiben, um auf die Datenbank zuzugreifen.

 

Mit der Anwendung auf die Datenbank zugreifen

Erstellen Sie eine Datei mit dem Namen HelloWorld.js im Ordner nodejs-pg-example . Fügen Sie folgenden Code in die Datei ein:

const { Client } = require('pg') async function sayHello() { const client = new Client({ user: 'foo', password: 'bar', database: 'example' }) await client.connect() const res = await client.query('SELECT * FROM example_table') console.log(res.rows[0].message) // 👋 Hello world. console.log(res.rows[1].message) // 👋 Hallo, Welt. await client.end() } sayHello()

Führen Sie dann folgenden Code aus:

node HelloWorld.js

Die Ausgabe sollte so aussehen:

$ node HelloWorld.js 
👋 Hello World.
👋 Hallo, Welt.

Herzlichen Glückwunsch! Sie haben nun Ihre erste Node.js-Anwendung erstellt, die auf eine PostgreSQL-Datenbank zugreifen kann.