La plupart des applications du monde réel interagissent avec les bases de données d'une manière ou d'une autre. Les bases de données facilitent la persistance, l'analyse et l'interaction avec les données.
La plupart des langages de programmation offrent un support pour connecter des applications à des bases de données comme PostgreSQL. Découvrez comment vous pouvez utiliser le module node-postgres pour connecter une application Node à PostgreSQL.
Comment commencer
Pour commencer par vous connecter à une base de données locale, vous devez disposer du Serveur PostgreSQL installé.
PostgresSQL est l'un des systèmes de bases de données relationnelles les plus courants en raison de sa souplesse et de sa puissance. Vous pouvez envisager de l'utiliser comme alternative à MySQL si votre projet est complexe ou si vous recherchez une solution qui adopte l'éthique open source.
Créer une application de nœud
La première étape consiste à créer une application Node que vous utiliserez pour tester le code de connexion. Dans votre dossier préféré, créez un nouveau dossier.
mkdir postgres-node
Accédez au dossier que vous avez créé et initialisez npm.
CD nœud postgres
npm init -y
Cette commande devrait générer un package.json dossier.
Ensuite, créez un nouveau fichier et nommez-le index.js. Vous connecterez Node à PostgreSQL dans ce fichier.
Utiliser le module node-postgres
La noeud-postgres module est un package npm qui vous permet de vous connecter et d'interagir avec une base de données PostgreSQL. Vous pouvez utiliser deux options pour connecter Node à PostgreSQL à l'aide du module node-postgres: un client unique ou un pool de connexions. Alors, que devez-vous utiliser ?
Utilisez un seul client si vous n'avez besoin que d'une seule connexion statique à la fois. Toutefois, si vous devez utiliser des requêtes simultanées et multiples, utilisez un pool de connexions.
Installer node-postgres
Exécutez la commande suivante dans votre terminal pour installer node-postgres.
npm installer page
Si vous utilisez node >= 14.x, vous devrez installer [email protected] ou plus tard. Vous pouvez spécifier le numéro de version en le suffixant à la commande d'installation comme ceci.
npm installer pg=8.7.3
Connexion à PostgreSQL
Le module node-postgres nécessite les valeurs suivantes pour se connecter à une base de données PostgreSQL.
- PGUSER - Nom d'utilisateur PostgreSQL sous lequel se connecter.
- PGHOST - Le nom de l'hôte du serveur auquel se connecter.
- PGPASSWORD - Le mot de passe du serveur PostgreSQL.
- PGDATABASE - Le nom de la base de données à laquelle vous vous connectez.
- PGPORT - Le numéro de port auquel se connecter sur l'hôte du serveur.
Créez un fichier .env et ajoutez ces variables, en remplaçant les valeurs correspondantes de votre base de données :
PGUSER=<PGUSER>
PGHOST=<PGHOST>
PGPASSWORD=<PGPASSWORD>
PGDATABASE=<PGDATABASE>
PORTPG=<PGPORT>
Installez le package dotenv pour accéder au fichier .env.
npm installer dotenv
Dans index.js, importez et configurez dotenv.
constante dotenv = exiger("dotenv")
dotenv.config()
Se connecter à une base de données PostgreSQL à l'aide d'un seul client
Le code ci-dessous montre comment vous pouvez connecter Node à un serveur PostgreSQL à l'aide d'un seul client.
constante {Client} = exiger("page")
constante dotenv = exiger("dotenv")
dotenv.config()constante connectDb = asynchrone () => {
essayer {
constante client = Nouveau Client({
utilisateur: traiter.env.PGUSER,
héberger: traiter.env.PGHOST,
base de données: traiter.env.PGDATABASE,
le mot de passe: traiter.env.PGPASSWORD,
Port: traiter.env.PGPORT
})attendre client.connect()
const res = attendre client.query('SÉLECTIONNER * DE une_table')
console.log (res)
attendre client.end()
} attraper (Erreur) {
console.log (erreur)
}
}
connectDb()
Utilisation d'un pool de connexions
Comme déjà mentionné, un pool de connexion vous permet de faire plusieurs demandes de connexion à votre serveur.
constante { Piscine } = exiger("page");
constante dotenv = exiger("dotenv");
dotenv.config();constante connectDb = asynchrone () => {
essayer {
constante piscine = Nouveau Piscine({
utilisateur: traiter.env.PGUSER,
héberger: traiter.env.PGHOST,
base de données: traiter.env.PGDATABASE,
le mot de passe: traiter.env.PGPASSWORD,
Port: traiter.env.PGPORT,
});attendre pool.connect()
const res = attendre pool.query('SÉLECTIONNER * DE clients')
console.log (res)
attendre piscine.end()
} attraper (Erreur) {
console.log (erreur)
}
}
connectDb()
Les exemples ci-dessus vous permettent de contrôler la configuration de la base de données via un fichier .env. Cependant, vous pouvez également fournir ces valeurs de configuration utilisation de variables d'environnement standard. Cette approche vous permet de varier facilement la configuration au démarrage.
Considérez le code de connexion suivant.
constante connectDb = asynchrone () => {
essayer {
constante piscine = Nouveau Piscine();
const res = attendre pool.query('SÉLECTIONNER * DE clients')
console.log (res)
attendre piscine.end()
} attraper (Erreur) {
console.log (erreur)
}
}
Dans ce programme, vous ne transmettez pas l'objet de connexion en tant qu'argument lors de l'initialisation de Pool. Au lieu de cela, vous devez spécifier les détails de connexion lorsque vous appelez le programme comme ceci :
PGUSER=<PGUSER> \
PGHOST=<PGHOST> \
PGPASSWORD=<PGPASSWORD> \
PGDATABASE=<PGDATABASE> \
PORTPG=<PGPORT> \
nœudindice.js
Connecter Node à PostgreSQL comme ceci vous permet d'écrire un programme plus réutilisable.
En faire plus avec PostgreSQL
Pour créer une application qui interagit avec les bases de données, vous devez d'abord la connecter à la base de données. Dans cet article, vous avez appris à connecter Node à une base de données PostgreSQL à l'aide du module node-Postgres.
Outre PostgreSQL, il existe d'autres systèmes de gestion de base de données comme MySQL que vous pouvez utiliser dans votre application. L'outil de base de données que vous choisissez doit être le plus compatible avec vos besoins en données.