Łączymy aplikacje Node.js z autoklastrowaną bazą PostgreSQL

Aplikacje i systemy w UniCloud

Łączymy aplikacje Node.js z autoklastrowaną bazą PostgreSQL

PostgreSQL jest obiektowo-relacyjnym systemem baz danych
o otwartym kodzie źródłowym [1].  Node.js [2] jest środowiskiem uruchomieniowym aplikacji typu „server-side”, który przyczynił się do stworzenia paradygmatu
„JavaScript everywhere”

 

Połączymy klaster baz danych PostgreSQL z aplikacją Node.js, wykorzystując wbudowane mechanizmy platformy chmurowej UniCloud [3].

 

Instalacja nowego środowiska w chmurze

W panelu UniCloud [4] utwórz nowe środowisko Node.js dodając bazę danych PostgreSQL. Skonfiguruj wymagane limity skalowania środowiska.


Rysunek 1: Tworzenie środowiska w chmurze

Oprócz pionowego skalowania zasobów, możesz włączyć skalowanie poziome, pozwalając chmurze dobierać odpowiednie do potrzeb ilości węzłów.

Rysunek 2: Tworzenie bazy danych

W przypadku bazy danych opcjonalnie możesz bez wysiłku uzyskać klaster węzłów typu master-slave.

Rysunek 3: Architektura klastra PostgreSQL

Po utworzeniu środowiska otrzymasz wiadomość e-mail z poświadczeniami dostępu do bazy danych (host, login i hasło).

 

Konfiguracja środowisk

Najłatwiejszy dostęp do serwera Node.js uzyskasz korzystając z wbudowanego klienta Web SSH

Rysunek 4: Rozpoczęcie konfiguracji

Po nawiązaniu połączenia musisz doinstalować node-postgres, paczkę modułów do łącznia z bazą danych PostgreSQL. Wykonaj w tym celu polecenie:

npm install pg

Rysunek 5: Instalacja modułów

Dla weryfikacji połączenia, przygotuj prosty skrypt Node.js (możesz wykonać np. polecenie Vim script.js, wklejając poniższy kod:

const { Pool } = require(’pg’)const pool = new Pool({  user: '{user}’,  host: '{host}’,  database: '{database}’,  password: '{password}’,  port: {port},})pool.query(’SELECT NOW()’, (err, res) => {  console.log(err, res)   pool.end() })

Skrypt weryfikacyjny

W skrypcie podaj następujące dane umożliwiające połączenie:

  • {user}i {password} – dane logowania do bazy danych otrzymane pocztą
  • {host}– link do węzła bazy danych PostgreSQL
  • {database}– nazwa bazy danych (domyślnie PostgreSQL)
  • {port} – numer portu, na którym nasłuchuje serwer bazy danych. Domyślnie dla PostreSQL jest to 5432

Rysunek 6: Przygotowanie skryptu w edytorze Vim

Uwaga : Zamiast poświadczeń w treści skryptu, node-postgres może używać zmiennych środowiskowych do łączenia się z serwerem PostgreSQL. Są to:
PGUSER = {użytkownik}
PGHOST = {host}
PGPASSWORD = {hasło}
PGDATABASE = {baza danych}
PGPORT = {port}

 

Testy

Za pomocą tego skryptu można sprawdzić połączenie serwera aplikacji z bazą danych. Uruchom go odpowiednim poleceniem:

node script.js

Rysunek 7: Weryfikacja aplikacji

Jeśli połączenie nawiązane jest pomyślnie, wyświetlany jest czas węzła serwera PostgreSQL, co oznacza, że baza danych dostępna jest dla aplikacji Node.js.

Info:

[1] PostgreSQL:
https://www.postgresql.org/

[2] Node.js:
http://nodejs.org/

[3] Jelastic, Blog:
https://jelastic.com/blog/postgresql-connect-nodejs-application/

[4] Panel UniCloud:
https://app.unicloud.pl

 

Autor:

Piotr Niemcewicz pracuje jako inżynier w Centrum Danych Asseco Data Systems S.A., gdzie zajmuje się projektowaniem i wsparciem podczas wdrażania systemów.

 

[[[["field6","contains","@"]],[["show_fields","field30"]],"and"]]
1 Step 1
Zapytaj eksperta
imię i nazwisko
telefon
pytanie / temat rozmowy
0 /

Informujemy, iż Państwa dane osobowe są przetwarzane przez administratora, którym jest Asseco Cloud sp. z o. o. z siedzibą w Rzeszowie, ul. Olchowa 14, 35-322 Rzeszów. Przetwarzamy Państwa dane w celu: przygotowanie odpowiedzi na złożone zapytanie oraz przesyłania informacji marketingowych za pomocą środków komunikacji elektronicznej. W związku z przetwarzaniem Państwa danych, posiadacie prawa do: dostępu, sprostowania, usunięcia, przenoszenia danych, ograniczenia przetwarzania i prawo do cofnięcia zgody. Z pełną treścią informacji dotyczących przetwarzania Państwa danych osobowych, w tym o przysługujących prawach i ich zakresie możecie się Państwo zapoznać pod adresem: https://asseco.cloud/dane-osobowe/

Previous
Next

Dell
Cisco
vmware
Emc2
Certum
Microsoft
IBM

 

Szanowna Użytkowniczko/Szanowny Użytkowniku

 

Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką prywatności. Przeglądanie strony jest jednoznaczne z akceptacją polityki prywatności.

Polityka prywatności