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.