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.