Comment accéder à un PostgreSQL depuis une application Node.js ?
Accéder à une base de données PostgreSQL depuis une application Node.js
Objectif
Dans ce tutoriel, nous allons vous apprendre à accéder à une base de données PostgreSQL depuis une application Node.js.
Node.js est l'un des environnements d'exécution JavaScript asynchrone et orienté événement les plus connus. Sa large adoption au cours des dernières années en fait une plateforme incontournable dans l'univers du développement web. Pour en savoir plus sur les capacités de Node.js, consultez la documentation officielle.
De son côté, PostgreSQL est l'une des bases de données les plus utilisées dans le monde. Sa simplicité d'utilisation et son approche open source sont autant d'éléments majeurs qui expliquent son adoption internationale. Pour en savoir plus sur les capacités de PostgreSQL, consultez la documentation officielle.
Exigences
Pour suivre ce tutoriel, vous devez disposer de la version 22.04 d'Ubuntu et l'exécuter sur une Instance Compute OVHcloud, par exemple. Quelques connaissances de base sur son fonctionnement sont également nécessaires. Si vous ne disposez pas d'Ubuntu 22.04, suivez ce guide pour utiliser une Instance Compute OVHcloud.
Pour comprendre comment installer la plateforme Node.js, consultez le tutoriel Comment installer Node.js sur Ubuntu 22.04.
Pour comprendre comment installer PostgreSQL, consultez le tutoriel Comment installer PostgreSQL sur Ubuntu 22.04.
N'hésitez pas à utiliser un IDE pour faciliter la manipulation des fichiers sources de ce tutoriel : VS Code, WebStorm, etc.
Instructions
Commencez par installer la bibliothèque node-postgres de Node.js, puis utilisez-la dans une application Node.js.
Au moment de la rédaction de ce tutoriel, la dernière version LTS de la bibliothèque node-postgres est la version 8.7.3.
Initialisation du projet
Tout d'abord, créez un dossier nodejs-pg-example et exécutez la commande npm init :
mkdir nodejs-pg-example cd nodejs-pg-example npm init
Le résultat s'affiche comme ceci :
$ mkdir nodejs-pg-example $ cd nodejs-pg-example $:~/nodejs-pg-example$ npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help init` for definitive documentation on these fields and exactly what they do. Use `npm install ` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (nodejs-pg-example) version: (1.0.0) description: Example project to access PostgreSQL from a Node.js application entry point: (index.js) test command: git repository: keywords: author: OVHcloud license: (ISC) About to write to /home/ubuntu/nodejs-pg-example/package.json: { "name": "nodejs-pg-example", "version": "1.0.0", "description": "Example project to access PostgreSQL from a Node.js application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC" } Is this OK? (yes) yes
Un fichier package.json a été créé dans le dossier nodejs-pg-example :
{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Example project to access PostgreSQL from a Node.js application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC" }
Création des éléments PostgreSQL
Ce tutoriel part du principe que votre base de données PostgreSQL est installée
Commencez par créer un tableau intitulé example_table :
CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50));
Le résultat s'affiche comme ceci :
foo@ubuntu:~$ psql -d example psql (14.2 (Ubuntu 14.2-1ubuntu1)) Type "help" for help. example=> CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50)); CREATE TABLE
Ensuite, insérez des données :
INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.'); INSERT INTO example_table (id, message) VALUES (2, '👋 Hola, mundo.');
Le résultat s'affiche comme ceci :
example=> INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.'); INSERT 0 1 example=> INSERT INTO example_table (id, message) VALUES (2, '👋 Hola, mundo.'); INSERT 0 1 exit foo@ubuntu:~$
Configuration de l'application pour accéder à la base de données PostgreSQL
Tout d'abord, ajoutez une dépendance à la bibliothèque node-postgres dans le fichier package.json. Pour ce faire, rendez-vous dans le dossier nodejs-pg-example et utilisez la commande npm pour ajouter la bibliothèque :
npm install pg
Le résultat s'affiche comme ceci :
~/nodejs-pg-example$ npm install pg added 15 packages, and audited 16 packages in 2s found 0 vulnerabilities
Le fichier package.json a été mis à jour par npm :
{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Example project to access PostgreSQL from a Node.js application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC", "dependencies": { "pg": "^8.7.3" } }
Vous êtes maintenant prêt à écrire le code Javascript qui permettra d'accéder à la base de données.
Accès à la base de données avec l'application
Dans un premier temps, vous devez créer un fichier HelloWorld.js dans le dossier nodejs-pg-example puis coller le code suivant :
const { Client } = require('pg') async function sayHello() { const client = new Client({ user: 'foo', password: 'bar', database: 'example' }) 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()
Exécutez le code :
node HelloWorld.js
Le résultat s'affiche comme ceci :
$ node HelloWorld.js 👋 Hello World. 👋 Hola, mundo.
Félicitations, vous venez d'écrire votre première application Node.js pour accéder à une base de données PostgreSQL !
Aller plus loin
Consultez les offres d'instance Public Cloud chez OVHcloud.