De fleste applikationer i den virkelige verden interagerer med databaser på en eller anden måde. Databaser gør det nemt at fortsætte, analysere og interagere med data.

De fleste programmeringssprog tilbyder support til at forbinde applikationer til databaser som PostgreSQL. Lær, hvordan du kan bruge node-postgres-modulet til at forbinde en Node-applikation til PostgreSQL.

Sådan kommer du i gang

For at begynde med at oprette forbindelse til en lokal database, skal du have PostgreSQL server installeret.

PostgresSQL er et af de mest almindelige relationelle databasesystemer på grund af dens fleksibilitet og kraft. Du kan overveje at bruge det som et alternativ til MySQL, hvis dit projekt er komplekst, eller du leder efter en løsning, der omfavner open source-etos.

Opret en nodeapplikation

Det første trin er at oprette en Node-applikation, som du vil bruge til at teste forbindelseskoden. Opret en ny mappe i din foretrukne mappe.

mkdir postgres-node

Naviger til den mappe, du har oprettet, og initialiser npm.

cd postgres-node
npm init -y

Denne kommando skal generere en package.json fil.

Derefter skal du oprette en ny fil og navngive den index.js. Du vil forbinde Node til PostgreSQL i denne fil.

Brug node-postgres modul

Det node-postgres modul er en npm-pakke, der giver dig mulighed for at oprette forbindelse til og interagere med en PostgreSQL-database. Der er to muligheder, du kan bruge til at forbinde Node med PostgreSQL ved hjælp af node-postgres-modulet: en enkelt klient eller en forbindelsespulje. Så hvad skal du bruge?

Brug en enkelt klient, hvis du kun har brug for én statisk forbindelse ad gangen. Men hvis du skal bruge samtidige og flere anmodninger, skal du bruge en forbindelsespulje.

Installer node-postgres

Kør følgende kommando i din terminal for at installere node-postgres.

npm installere s

Hvis du bruger node >= 14.x, skal du installere [email protected] o senere. Du kan angive versionsnummeret ved at suffikse det til installationskommandoen på denne måde.

npm installere pg=8.7.3

Opretter forbindelse til PostgreSQL

Node-postgres-modulet kræver følgende værdier for at oprette forbindelse til en PostgreSQL-database.

  • PGUSER - PostgreSQL brugernavn at forbinde som.
  • PGHOST - Navnet på serverværten, der skal oprettes forbindelse til.
  • PGPASSWORD - Adgangskoden til PostgreSQL-serveren.
  • PGDATABASE - Navnet på den database, du opretter forbindelse til.
  • PGPORT - Portnummeret, der skal oprettes forbindelse til hos serverværten.

Opret en .env-fil, og tilføj disse variabler og erstatter de tilsvarende værdier fra din database:

PGUSER=<PGUSER>
PGHOST=<PGHOST>
PGPASSWORD=<PGPASSWORD>
PGDATABASE=<PGDATABASE>
PGPORT=<PGPORT>

Installer dotenv-pakken for at få adgang til .env-filen.

npm installere dotenv

I index.js, importer og konfigurer dotenv.

konst dotenv = kræve("dotenv")
dotenv.config()

Opret forbindelse til en PostgreSQL-database ved hjælp af en enkelt klient

Koden nedenfor viser, hvordan du kan forbinde Node til en PostgreSQL-server ved hjælp af en enkelt klient.

konst { Klient } = kræve("side")
konst dotenv = kræve("dotenv")
dotenv.config()

konst connectDb = asynkron () => {
prøve {
konst klient = ny Klient({
bruger: behandle.env.PGUSER,
vært: behandle.env.PGHOST,
database: behandle.env.PGDATABASE,
adgangskode: behandle.env.PGPASSWORD,
Havn: behandle.env.PGPORT
})

vente client.connect()
const res = afvent klient.query('VÆLG * FRA noget_bord')
konsol.log (res)
vente client.end()
} fangst (fejl) {
konsol.log (fejl)
}
}

connectDb()

Brug af en forbindelsespool

Som allerede nævnt giver en forbindelsespulje dig mulighed for at lave flere forbindelsesanmodninger til din server.

konst { Pool } = kræve("pg");
konst dotenv = kræve("dotenv");
dotenv.config();

konst connectDb = asynkron () => {
prøve {
konst pool = ny Pool({
bruger: behandle.env.PGUSER,
vært: behandle.env.PGHOST,
database: behandle.env.PGDATABASE,
adgangskode: behandle.env.PGPASSWORD,
Havn: behandle.env.PGPORT,
});

vente pool.connect()
const res = await pool.query('VÆLG * FRA kunder')
konsol.log (res)
vente pool.end()
} fangst (fejl) {
konsol.log (fejl)
}
}

connectDb()

Ovenstående eksempler lader dig styre databasekonfigurationen via en .env-fil. Du kan dog også angive disse konfigurationsværdier ved hjælp af standard miljøvariabler. Denne tilgang lader dig nemt variere konfigurationen ved opstart.

Overvej følgende forbindelseskode.

konst connectDb = asynkron () => {
prøve {
konst pool = ny Pool();
const res = await pool.query('VÆLG * FRA kunder')
konsol.log (res)
vente pool.end()
} fangst (fejl) {
konsol.log (fejl)
}
}

I dette program sender du ikke forbindelsesobjektet som et argument, når du initialiserer Pool. I stedet skal du angive forbindelsesdetaljerne, når du starter programmet på denne måde:

PGUSER=<PGUSER> \
PGHOST=<PGHOST> \
PGPASSWORD=<PGPASSWORD> \
PGDATABASE=<PGDATABASE> \
PGPORT=<PGPORT> \
nodeindeks.js

At forbinde Node til PostgreSQL på denne måde giver dig mulighed for at skrive et mere genanvendeligt program.

Gør mere med PostgreSQL

For at oprette et program, der interagerer med databaser, skal du først forbinde det til databasen. I denne artikel lærte du, hvordan du forbinder Node til en PostgreSQL-database ved hjælp af node-Postgres-modulet.

Bortset fra PostgreSQL er der andre databasestyringssystemer som MySQL, du kan bruge i din applikation. Det databaseværktøj, du vælger, bør være det mest kompatible med dine databehov.