custom background image

Come accedere a PostgreSQL da Node.js


Accedere a un database PostgreSQL da un'applicazione Node.js

Obiettivo

In questo tutorial imparerai come accedere a un database PostgreSQL da un’applicazione Node.js.

Node.js è uno dei più famosi runtime JavaScript asincroni basati su eventi. Negli ultimi anni si è diffuso al punto da diventare un linguaggio imprescindibile nel mondo dello sviluppo. Per maggiori informazioni sulle funzionalità della piattaforma Node.js, consulta la documentazione ufficiale.

PostgreSQL è uno dei database più famosi al mondo, principalmente grazie alla semplicità di utilizzo e l’approccio open source. Per ulteriori informazioni sulle funzionalità di PostgreSQL, consulta la documentazione ufficiale.

 

Requisiti

Questo tutorial presuppone che tu abbia un’istanza di Public Cloud Compute OVHcloud, un VPS o un server Bare Metal su cui è in esecuzione Ubuntu 22.04 e conoscenze di base utilizzando la riga di comando. In questo tutorial abbiamo utilizzato un’istanza Public Cloud Compute. Se hai bisogno di aiuto per installare una tua istanza Public Cloud con Ubuntu 22.04, consulta questa guida: Creare e connettersi a un’istanza Public Cloud.

Come prerequisito, dovrai avere anche Node.js e Postgre installati sulla tua istanza. Se necessario, le seguenti guide possono aiutarti.

Come installare Node.js su Ubuntu 22.04.
Installa PostgreSQL su Ubuntu 22.04.

È possibile utilizzare un IDE per semplificare la manipolazione dei file di origine descritti in questa esercitazione. Dai un'occhiata a VS Code o WebStorm.

 

Procedura

Installare la libreria Node.js node-postgres in modo che possa essere utilizzata da un'applicazione Node.js.

Al momento della creazione di questo tutorial, l'ultima versione LTS della libreria node-postgres disponibile era 8.7.3.

 

Avvia il tuo progetto

Creare una cartella denominata nodejs-pg-esempio ed eseguire il comando NPM init:

mkdir nodejs-pg-esempio cd nodejs-pg-esempio npm init

Il risultato dovrebbe essere simile al seguente:

$ mkdir nodejs-pg-esempio
$ cd nodejs-pg-esempio
$:~/nodejs-pg-esempio$ npm init
Questa utility ti guiderà attraverso la creazione di un file package.json.
Copre solo gli elementi più comuni e cerca di indovinare i valori predefiniti sensibili.

Per la documentazione definitiva su questi campi, consulta `npm help init`
ed esattamente quello che fanno.

dopodiché, utilizza `npm install ` per installare un pacchetto e
salvarla come dipendenza nel file package.json.

Premere ^C in qualsiasi momento per uscire.
nome del pacchetto: (nodejs-pg-esempio) 
versione: (1.0.0) 
descrizione: Esempio di progetto per accedere a PostgreSQL da un'applicazione Node.js
punto d'ingresso: (index.js) 
comando di test: 
repository git: 
parole chiave: 
autore: OVHcloud
licenza: (ISC) 
Sto per scrivere a /home/ubuntu/nodejs-pg-example/package.json:

{
  "nome": "nodejs-pg-example",
  "versione": "1.0.0",
  "descrizione": "Esempio di progetto per accedere a PostgreSQL da un'applicazione Node.js",
  "principale": "index.js"
  "script": {
    "prova": Errore "echo \": nessun test specificato\" & & uscita 1"
  },
  "autore": "OVHcloud"
  "licenza": "ISC"
}


Va bene? (sì) sì

È stato creato un file package.json nella cartella nodejs-pg-example:

{ "cognome": "nodejs-pg-esempio", "versione": "1.0.0", "descrizione": "Esempio di progetto per accedere a PostgreSQL da un’applicazione Node.js", "principale": "index.js", "scripts": { "test": Errore "echo \": nessun test specificato\" && uscita 1" }, "autore": "OVHcloud", "licenza": "ISC" }

 

Crea elementi PostgreSQL

presumiamo che tu abbia già installato il tuo database PostgreSQL

Creare una tabella denominata esempio_tabella:

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

Il risultato dovrebbe essere simile al seguente:

foo@ubuntu:~$ psql -d esempio
psql (14.2 (Ubuntu 14.2-1ubuntu1))
Type "help" for help.

esempio=> CREATE TABLE esempio_table (id INT PRIMARY KEY NOT NULL, messaggio CHAR(50));
CREATE TABLE

Inserisci quindi alcuni dati:

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

Il risultato dovrebbe essere simile al seguente:

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

 

Configura l'applicazione per accedere al database PostgreSQL

A questo punto è necessario aggiungere la dipendenza alla libreria node-postgres nel file package.json. Per farlo, passa alla cartella nodejs-pg-esempio e utilizza il comando npm per aggiungere la libreria:

npm install pg

Il risultato dovrebbe essere simile al seguente:

~/nodejs-pg-esempio$ npm install pg

aggiunta di 15 pacchetti e verifica di 16 pacchetti in 2

trovate 0 vulnerabilità

Il file package.json è stato aggiornato da NPM:

{ "cognome": "nodejs-pg-esempio", "versione": "1.0.0", "descrizione": "Esempio di progetto per accedere a PostgreSQL da un’applicazione Node.js", "principale": "index.js", "scripts": { "test": Errore "echo \": nessun test specificato\" && uscita 1" }, "autore": "OVHcloud", "licenza": "ISC", "dependencies": { "pg": "^8.7.3" } }

A questo punto, sei pronto a scrivere il codice Javascript che ti permetterà di accedere al database.

 

Accedi al database con l'applicazione

Creare un file denominato HelloWorld.js nella cartella nodejs-pg-example e incollare nel file il codice seguente:

const { Client } = bisogno('pg') funzione asincrona sayHello() { client const = nuovo client({ utente: 'foo', password: 'bar', database: 'esempio' }) 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) // 👋 Hola, mundo. await client.end() } sayHello()

Quindi, esegui questo codice:

node HelloWorld.js

Il risultato dovrebbe essere simile al seguente:

$ node HelloWorld.js 
👋 Hello World.
👋 Hola, mundo.

Congratulazioni! Hai scritto correttamente la tua prima applicazione Node.js in grado di accedere a un database PostgreSQL.