La maggior parte delle applicazioni del mondo reale interagiscono con i database in un modo o nell'altro. I database semplificano la persistenza, l'analisi e l'interazione con i dati.

La maggior parte dei linguaggi di programmazione offre supporto per la connessione di applicazioni a database come PostgreSQL. Scopri come utilizzare il modulo node-postgres per connettere un'applicazione Node a PostgreSQL.

Come iniziare

Per iniziare connettendoti a un database locale, dovrai avere il file Server PostgreSQL installato.

PostgresSQL è uno dei più comuni sistemi di database relazionali grazie alla sua flessibilità e potenza. Potresti considerare di usarlo come alternativa a MySQL se il tuo progetto è complesso o stai cercando una soluzione che abbracci l'etica dell'open source.

Crea un'applicazione nodo

Il primo passaggio consiste nel creare un'applicazione Node che utilizzerai per testare il codice di connessione. Nella tua cartella preferita, crea una nuova cartella.

mkdir postgres-node

Passa alla cartella che hai creato e inizializza npm.

instagram viewer
CD nodo postgres
npm init -y

Questo comando dovrebbe generare un pacchetto.json file.

Quindi, crea un nuovo file e assegnagli un nome index.js. Connetterai Node a PostgreSQL in questo file.

Usa il modulo node-postgres

Il nodo-postgres module è un pacchetto npm che ti permette di connetterti e interagire con un database PostgreSQL. Ci sono due opzioni che puoi usare per connettere Node con PostgreSQL usando il modulo node-postgres: un singolo client o un pool di connessioni. Quindi cosa dovresti usare?

Usa un singolo client se hai bisogno di una sola connessione statica alla volta. Tuttavia, se è necessario utilizzare richieste simultanee e multiple, utilizzare un pool di connessioni.

Installa node-postgres

Esegui il seguente comando nel tuo terminale per installare node-postgres.

npm installare pag

Se usi node >= 14.x, dovrai installare [email protected] o in un secondo momento. È possibile specificare il numero di versione aggiungendo un suffisso al comando di installazione in questo modo.

npm installare pg=8.7.3

Connessione a PostgreSQL

Il modulo node-postgres richiede i seguenti valori per connettersi a un database PostgreSQL.

  • PGUSER - Nome utente PostgreSQL per connettersi come.
  • PGHOST - Il nome dell'host del server a cui connettersi.
  • PGPASSWORD - La password del server PostgreSQL.
  • PGDATABASE - Il nome del database a cui ti stai connettendo.
  • PGPORT - Il numero di porta a cui connettersi all'host del server.

Crea un file .env e aggiungi queste variabili, sostituendo i valori corrispondenti dal tuo database:

PGUSER=<PGUSER>
PGHOST=<PGHOST>
PASSWORD PG=<PASSWORD PG>
PGDATABASE=<PGDATABASE>
PGPORT=<PGPORT>

Installa il pacchetto dotenv per accedere al file .env.

npm installare dotenv

In index.js, importa e configura dotenv.

cost dotenv = richiedere("dotenv")
dotenv.config()

Connettiti a un database PostgreSQL utilizzando un singolo client

Il codice seguente mostra come connettere Node a un server PostgreSQL utilizzando un singolo client.

cost {Cliente} = richiedere("pag")
cost dotenv = richiedere("dotenv")
dotenv.config()

cost connettiDb = asincrono () => {
Tentativo {
cost cliente = nuovo Cliente({
utente: processi.env.PGUSER,
ospite: processi.env.PGHOST,
Banca dati: processi.env.PGDATABASE,
parola d'ordine: processi.env.PGPASSWORD,
porta: processi.env.PGPORT
})

aspettare client.connect()
const res = attendi client.query('SELEZIONARE * DA qualche_tavolo')
consolle.log (ris)
aspettare client.end()
} presa (errore) {
consolle.log (errore)
}
}

connettiDb()

Utilizzo di un pool di connessioni

Come già accennato, un pool di connessioni ti consente di effettuare più richieste di connessione al tuo server.

cost {Piscina} = richiedere("pag");
cost dotenv = richiedere("dotenv");
dotenv.config();

cost connettiDb = asincrono () => {
Tentativo {
cost piscina = nuovo Piscina({
utente: processi.env.PGUSER,
ospite: processi.env.PGHOST,
Banca dati: processi.env.PGDATABASE,
parola d'ordine: processi.env.PGPASSWORD,
porta: processi.env.PGPORT,
});

aspettare pool.connect()
const res = attendi pool.query('SELEZIONARE * DA clienti')
consolle.log (ris)
aspettare pool.end()
} presa (errore) {
consolle.log (errore)
}
}

connettiDb()

Gli esempi precedenti consentono di controllare la configurazione del database tramite un file .env. Tuttavia, puoi anche fornire questi valori di configurazione utilizzando variabili di ambiente standard. Questo approccio consente di variare facilmente la configurazione all'avvio.

Considera il seguente codice di connessione.

cost connettiDb = asincrono () => {
Tentativo {
cost piscina = nuovo Piscina();
const res = attendi pool.query('SELEZIONARE * DA clienti')
consolle.log (ris)
aspettare pool.end()
} presa (errore) {
consolle.log (errore)
}
}

In questo programma, non si passa l'oggetto connessione come argomento durante l'inizializzazione del Pool. Invece, devi specificare i dettagli della connessione quando invochi il programma in questo modo:

PGUSER=<PGUSER> \
PGHOST=<PGHOST> \
PASSWORD PG=<PASSWORD PG> \
PGDATABASE=<PGDATABASE> \
PGPORT=<PGPORT> \
nodoindice.js

Collegare Node a PostgreSQL in questo modo ti consente di scrivere un programma più riutilizzabile.

Fare di più con PostgreSQL

Per creare un'applicazione che interagisce con i database, devi prima collegarla al database. In questo articolo, hai imparato come connettere Node a un database PostgreSQL usando il modulo node-Postgres.

Oltre a PostgreSQL, ci sono altri sistemi di gestione di database come MySQL che puoi utilizzare nella tua applicazione. Lo strumento di database che scegli dovrebbe essere il più compatibile con le tue esigenze di dati.