De flesta verkliga applikationer interagerar med databaser på ett eller annat sätt. Databaser gör det enkelt att bestå, analysera och interagera med data.

De flesta programmeringsspråk erbjuder stöd för att ansluta applikationer till databaser som PostgreSQL. Lär dig hur du kan använda node-postgres-modulen för att ansluta en Node-applikation till PostgreSQL.

Hur man kommer igång

För att börja med att ansluta till en lokal databas måste du ha PostgreSQL-servern installerad.

PostgresSQL är ett av de vanligaste relationsdatabassystemen på grund av dess flexibilitet och kraft. Du kan överväga att använda det som ett alternativ till MySQL om ditt projekt är komplext eller om du letar efter en lösning som omfattar öppen källkod.

Skapa en nodapplikation

Det första steget är att skapa en Node-applikation som du ska använda för att testa anslutningskoden. Skapa en ny mapp i din föredragna mapp.

mkdir postgres-nod

Navigera till mappen du skapade och initiera npm.

CD postgres-nod
npm init -y

Detta kommando bör generera en package.json fil.

instagram viewer

Skapa sedan en ny fil och namnge den index.js. Du kommer att ansluta Node till PostgreSQL i den här filen.

Använd node-postgres-modulen

De nod-postgres module är ett npm-paket som låter dig ansluta till och interagera med en PostgreSQL-databas. Det finns två alternativ du kan använda för att ansluta Node med PostgreSQL med hjälp av node-postgres-modulen: en enskild klient eller en anslutningspool. Så vad ska du använda?

Använd en enskild klient om du bara behöver en statisk anslutning åt gången. Men om du behöver använda samtidiga och flera förfrågningar, använd en anslutningspool.

Installera node-postgres

Kör följande kommando i din terminal för att installera node-postgres.

npm Installera sid

Om du använder nod >= 14.x, måste du installera [email protected] senare. Du kan ange versionsnumret genom att suffixa det till installationskommandot så här.

npm Installera pg=8.7.3

Ansluter till PostgreSQL

Node-postgres-modulen kräver följande värden för att ansluta till en PostgreSQL-databas.

  • PGUSER - PostgreSQL användarnamn att ansluta som.
  • PGHOST - Namnet på servervärden som ska anslutas till.
  • PGPASSWORD - Lösenordet för PostgreSQL-servern.
  • PGDATABASE - Namnet på databasen du ansluter till.
  • PGPORT - Portnumret att ansluta till på servervärden.

Skapa en .env-fil och lägg till dessa variabler och ersätt motsvarande värden från din databas:

PGUSER=<PGUSER>
PGHOST=<PGHOST>
PGPASSWORD=<PGP-Lösenord>
PGDATABAS=<PGDATABAS>
PGPORT=<PGPORT>

Installera dotenv-paketet för att komma åt .env-filen.

npm Installera dotenv

I index.js, importera och konfigurera dotenv.

konst dotenv = behöva("dotenv")
dotenv.config()

Anslut till en PostgreSQL-databas med en enda klient

Koden nedan visar hur du kan ansluta Node till en PostgreSQL-server med en enda klient.

konst { Client } = behöva("sid")
konst dotenv = behöva("dotenv")
dotenv.config()

konst connectDb = asynkron () => {
Prova {
konst klient = ny Klient({
användare: bearbeta.env.PGUSER,
värd: bearbeta.env.PGHOST,
databas: bearbeta.env.PGDATABASE,
Lösenord: bearbeta.env.PGPASSWORD,
hamn: bearbeta.env.PGPORT
})

vänta client.connect()
const res = await client.query('VÄLJ * FRÅN some_table')
trösta.log (res)
vänta client.end()
} fånga (fel) {
trösta.log (fel)
}
}

connectDb()

Använda en anslutningspool

Som redan nämnts låter en anslutningspool dig göra flera anslutningsförfrågningar till din server.

konst { Pool } = behöva("pg");
konst dotenv = behöva("dotenv");
dotenv.config();

konst connectDb = asynkron () => {
Prova {
konst pool = ny Slå samman({
användare: bearbeta.env.PGUSER,
värd: bearbeta.env.PGHOST,
databas: bearbeta.env.PGDATABASE,
Lösenord: bearbeta.env.PGPASSWORD,
hamn: bearbeta.env.PGPORT,
});

vänta pool.connect()
const res = await pool.query('VÄLJ * FRÅN kunders)
trösta.log (res)
vänta pool.end()
} fånga (fel) {
trösta.log (fel)
}
}

connectDb()

Exemplen ovan låter dig styra databaskonfigurationen via en .env-fil. Du kan dock även ange dessa konfigurationsvärden med standardmiljövariabler. Detta tillvägagångssätt låter dig enkelt variera konfigurationen vid uppstart.

Tänk på följande anslutningskod.

konst connectDb = asynkron () => {
Prova {
konst pool = ny Slå samman();
const res = await pool.query('VÄLJ * FRÅN kunders)
trösta.log (res)
vänta pool.end()
} fånga (fel) {
trösta.log (fel)
}
}

I det här programmet skickar du inte anslutningsobjektet som ett argument när du initierar Pool. Istället måste du ange anslutningsdetaljerna när du anropar programmet så här:

PGUSER=<PGUSER> \
PGHOST=<PGHOST> \
PGPASSWORD=<PGP-Lösenord> \
PGDATABAS=<PGDATABAS> \
PGPORT=<PGPORT> \
nodindex.js

Genom att ansluta Node till PostgreSQL så här kan du skriva ett mer återanvändbart program.

Göra mer med PostgreSQL

För att skapa en applikation som interagerar med databaser måste du först ansluta den till databasen. I den här artikeln lärde du dig hur du ansluter Node till en PostgreSQL-databas med hjälp av modulen node-Postgres.

Förutom PostgreSQL finns det andra databashanteringssystem som MySQL du kan använda i din applikation. Databasverktyget du väljer bör vara det mest kompatibla med dina databehov.