How to access a PostgreSQL from Node.js application
Dostęp do bazy danych PostgreSQL z poziomu aplikacji Node.js
Cel
Z tego tutorialu dowiesz się, jak uzyskać dostęp do bazy danych PostgreSQL za pomocą aplikacji Node.js.
Node.js jest jednym z najbardziej znanych asynchronicznych środowisk wykonawczych JavaScript sterowanych zdarzeniami. Jego popularność w ostatnich latach sprawiła, że stał się nieodzowną platformą w projektach deweloperskich. Aby dowiedzieć się więcej o możliwościach Node.js, sprawdź oficjalną dokumentację.
PostgreSQL jest jedną z najbardziej znanych baz danych na świecie. Prosta obsługa i podejście open source są głównymi elementami przemawiającymi za popularnością tego rozwiązania. Aby dowiedzieć się więcej o możliwościach PostgreSQL, sprawdź oficjalną dokumentację.
Wymagania
W tym tutorialu przyjmujemy, że posiadasz instancję Compute w ramach Public Cloud, serwer VPS lub serwer Bare Metal z systemem Ubuntu 22.04 oraz podstawowe umiejętności w zakresie wierszy poleceń. Na potrzeby tego tutorialu opieramy się na przykładzie instancji Compute w Public Cloud. Jeśli potrzebujesz pomocy w skonfigurowaniu instancji Public Cloud z systemem Ubuntu 22.04, skorzystaj z tego przewodnika: Tworzenie pierwszej instancji Public Cloud i łączenie się z nią.
Na wstępie zainstaluj Node.js i Postgre na Twojej instancji. W razie potrzeby skorzystaj z następujących przewodników.
Jak zainstalować Node.js na Ubuntu 22.04.
Jak zainstalować PostgreSQL na Ubuntu 22.04.
Możesz użyć IDE, aby ułatwić przetwarzanie plików źródłowych opisanych w tym tutorialu. Sprawdź VS Code lub WebStorm.
Wskazówki
Zainstaluj bibliotekę Node.js node-postgres, której będzie używała aplikacja Node.js.
W momencie tworzenia tego tutoriala, najnowsza dostępna wersja LTS biblioteki node-postgres to 8.7.3.
Uruchomienie projektu
Utwórz folder o nazwie nodejs-pg-example i uruchom polecenie NPM init:
mkdir nodejs-pg-example cd nodejs-pg-example npm init
Wynik powinien wyglądać tak:
$ mkdir nodejs-pg-example $ cd nodejs-pg-example $:~/nodejs-pg-example$ npm init To narzędzie przeprowadzi Cię przez proces tworzenia pliku package.json. Obejmuje tylko najczęstsze elementy i próbuje odgadnąć sensowne wartości domyślne. Definitywna dokumentacja dotycząca tych pól znajduje się w sekcji "npm help init". i dokładnie to, co robią. Następnie użyj funkcji "npm install" , aby zainstalować pakiet i zapisz go jako zależność w pliku package.json. Naciśnij klawisz ^C, aby zakończyć. nazwa pakietu: (nodejs-pg-przyklad) version: (1.0.0) description: Przykładowy projekt umożliwiający dostęp do PostgreSQL z aplikacji Node.js punkt wejścia: (index.js) polecenie testowe: repozytorium git: słowa kluczowe: autor: OVHcloud license: (ISC) Masz zamiar pisać na adres /home/ubuntu/nodejs-pg-example/package.json: { "name": "nodejs-pg-example", "version": "1.0.0", "description": "Przykładowy projekt umożliwiający dostęp do PostgreSQL z aplikacji Node.js", "main": "index.js", "skrypty": { "test": "echo \"Błąd: nie określono testu\" && exit 1" }, "autor": "OVHcloud", "license": "ISC" } Zgoda? (tak) tak
Plik package.json został utworzony w folderze nodejs-pg-example:
{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Example project to access PostgreSQL from a Node.js application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC" }
Tworzenie elementów PostgreSQL
Otwórz uprzednio zainstalowaną bazę danych PostgreSQL.
Utwórz tabelę o nazwie example_table:
CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50));
Wynik powinien wyglądać tak:
foo@ubuntu:~$ psql -d example psql (14.2 (Ubuntu 14.2-1ubuntu1)) Wpisz "help", aby wyświetlić pomoc. example=> CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50)); UTWÓRZ TABELĘ
Następnie wpisz wartość:
INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.'); INSERT INTO example_table (id, message) VALUES (2, '👋 Witaj, świecie.');
Wynik powinien wyglądać tak:
example=> INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.'); WSTAW 0 1 example=> INSERT INTO example_table (id, message) VALUES (2, '👋 Witaj, świecie.'); WSTAW 0 1 zakończ foo@ubuntu:~$
Skonfiguruj aplikację, aby uzyskać dostęp do bazy danych PostgreSQL
Dodaj zależność do biblioteki node-postgres w pliku package.json. W tym celu przejdź do folderu nodejs-pg-example i dodaj bibliotekę za pomocą polecenia npm:
pg instalacji npm
Wynik powinien wyglądać tak:
~/nodejs-pg-example$ npm install pg dodał 15 pakietów i skontrolował 16 pakietów w 2 roku znaleziono 0 podatności
Plik package.json został zaktualizowany za pomocą NPM:
{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Example project to access PostgreSQL from a Node.js application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC", "dependencies": { "pg": "^8.7.3" } }
Teraz napisz kod Javascript, który uzyska dostęp do bazy danych.
Dostęp do bazy danych za pomocą aplikacji
Create a file named HelloWorld.js in the nodejs-pg-example folder and paste the following code into the file:
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) // 👋 Witaj, świecie. await client.end() } sayHello()
Następnie wykonaj kod:
node HelloWorld.js
Wynik powinien wyglądać tak:
$ node HelloWorld.js 👋 Hello World. 👋 Witaj, świecie.
Gratulacje, napisałeś swoją pierwszą aplikację Node.js, która może uzyskać dostęp do bazy danych PostgreSQL.