Tutoriel Knex.js avec TypeScript et PostgreSQL

17 juin 2026

Tutoriel Knex.js avec TypeScript et PostgreSQL

Dans le tutoriel d’aujourd’hui, je vais vous montrer comment utiliser le constructeur de requêtes Knex.js dans des applications Node.js afin d’interagir avec la base de données PostgreSQL. Vous vous demandez ce qu’est un constructeur de requêtes ? Pas d’inquiétude, je vais vous l’expliquer ; gardez simplement à l’esprit que ceci est un tutoriel destiné à ceux qui maîtrisent déjà Node.js, TypeScript et qui connaissent aussi la base Postgres.

Si vous avez besoin de connaissances de base ou d’un renforcement en TS, utilisez ce tutoriel.

#1 – Pilote natif x Query Builder x ORM

Lorsque nous allons créer une application qui se connecte à une base de données pour interroger et enregistrer des données, nous avons trois approches possibles:

Chacune de ces trois approches présente ses avantages et ses inconvénients, ainsi que ses partisans et ses détracteurs. En résumé, voici le comparatif:

Ayant compris ce point initial sur les approches, avançons.

#2 – Environnement et Projet

Si vous n’avez jamais programmé avec Node et Postgre avant, je vous laisse ci-dessous une vidéo montrant l’installation de l’environnement.

Lorsque l’environnement est prêt, vous pouvez créer la base et la table pour notre application.

Maintenant, créez un dossier sur votre machine pour le projet, j’utiliserai le nom “crud-knex-postgresql”. Ouvrez le terminal et dans ce dossier lancez un “npm init -y” pour initialiser le projet et créer le fichier package.json.

Toujours dans le terminal, installez les dépendances dont nous aurons besoin dans ce tutoriel

À savoir :

D’autres options de bases de données possibles seraient CockroachDB, MS SQL Server, MySQL, MariaDB, SQLite3, Better-SQLite3, Oracle et Amazon Redshift, il suffirait de changer le connecteur (pg).

Et maintenant les dépendances de développement :

À savoir :

Et ensuite, initialisez TypeScript dans le projet.

Et ajustez votre package.json pour que le type du projet soit module, au lieu de commonjs et le script de démarrage.

Faites cela, créez maintenant un fichier .env à la racine de votre projet et placez-y les variables d’environnement suivantes, dûment configurées avec les données du serveur PostgreSQL que vous allez utiliser.

La variable debug sert à ce que Knex affiche dans le terminal le SQL qu’il exécute sur la base de données, utile pendant le développement.

Et avec cela, nous terminons la configuration initiale du projet.

#3 – Configuration de Knex

La première étape consiste à créer un dossier src à la racine du projet et, à l’intérieur, un dossier config, où nous allons stocker les fichiers de configuration. Le premier fichier de configuration dont nous allons avoir besoin est knex.ts, qui comme son nom l’indique, configure le query builder.

 import "dotenv/config";
import Knex from "knex";

const knex = Knex({
  client: "pg",
  connection: {
    host: `${process.env.DB_HOST}`,
    port: Number(process.env.DB_PORT),
    user: `${process.env.DB_USER}`,
    password: `${process.env.DB_PASSWORD}`,
    database: `${process.env.DB_DATABASE}`,
  },
  pool: {
    min: 2,
    max: 10,
  },
});

export const onDatabaseConnect = () => knex.raw("SELECT 1");

export default knex;

Nous commençons par importer les variables d’environnement, puis le paquet Knex. Comme c’est courant avec les abstractions de base de données, nous devons d’abord diriger notre query builder vers notre base (connection), préciser quel client de base de données nous utilisons (pg) et les configurations du pool de connexions, optionnelles mais recommandées pour de meilleures performances.

Après les configurations de connexion de Knex, je crée et exporte une fonction qui teste la connexion. Si tout est correct, cette fonction retournera une ligne contenant le chiffre 1, sinon une erreur.

Enfin, j’exporte par défaut l’objet Knex, correctement connecté.

Maintenant, passons à index.ts qui doit exister dans src pour écrire un code initial qui teste la connexion en utilisant Knex.