Maison  >  Article  >  interface Web  >  Comment connecter PostgreSQL avec Node.js et Sequelize

Comment connecter PostgreSQL avec Node.js et Sequelize

王林
王林original
2024-08-02 09:45:411102parcourir

How to connect PostgreSQL with Node.js and Sequelize

Lorsqu'il s'agit de travailler avec des bases de données, les développeurs sont souvent confrontés au choix entre utiliser des requêtes de base de données brutes ou exploiter des bibliothèques qui éliminent une partie de la complexité. Sequelize est l'une de ces bibliothèques : un ORM Node.js (Object-Relational Mapper) populaire qui fonctionne avec PostgreSQL, MySQL et d'autres bases de données relationnelles. Dans ce didacticiel, nous verrons comment utiliser Sequelize sur Node.js pour vous connecter à une base de données PostgreSQL, couvrant l'installation, la configuration, la création de modèle et l'exécution d'opérations CRUD.

Installer et configurer Sequelize

Sequelize simplifie les interactions avec les bases de données en fournissant une couche d'abstraction sur les requêtes SQL. Il utilise la bibliothèque pg sous le capot pour se connecter à PostgreSQL. Pour démarrer avec Sequelize, suivez ces étapes :

  1. Initialisez votre projet

    Si vous démarrez un nouveau projet, initialisez un projet Node.js pour créer un fichier package.json :

    npm init -y
    
  2. Installer Sequelize et le pilote PostgreSQL

    Installez Sequelize avec le pilote PostgreSQL pg :

    npm install pg sequelize
    
  3. Configurer la configuration de la base de données

    Dans votre application Node.js, vous devez d'abord définir vos variables d'accès à la base de données PostgreSQL :

    const user = '<postgres_user>';
    const host = 'localhost';
    const database = '<postgres_db_name>';
    const password = '<postgres_password>';
    const port = '<postgres_port>';
    
  4. Importer Sequelize

    Importez les objets nécessaires depuis Sequelize :

    const { Sequelize, Model, DataTypes } = require('sequelize');
    
  5. Initialiser Sequelize

    Créez une nouvelle instance Sequelize avec la configuration de votre base de données :

    const sequelize = new Sequelize(database, user, password, {
      host,
      port,
      dialect: 'postgres',
      logging: false
    });
    

    Ici, nous spécifions dialect : 'postgres' pour indiquer que nous utilisons PostgreSQL. Nous désactivons également la journalisation des requêtes SQL pour garder la sortie de la console propre, bien que vous puissiez l'activer pendant le débogage.

Création d'un modèle Sequelize

Les modèles dans Sequelize représentent les tables de votre base de données. Chaque modèle définit la structure de la table correspondante et fournit des méthodes pour interagir avec elle.

  1. Définir un modèle

    Supposons que vous ayez une table nommée cats avec des colonnes nom et âge. Vous pouvez définir un modèle Sequelize pour cette table comme suit :

    class Cat extends Model {}
    
    Cat.init({
      name: {
        type: DataTypes.STRING,
        allowNull: false
      },
      age: {
        type: DataTypes.INTEGER,
        allowNull: false
      }
    }, {
      sequelize,
      modelName: 'cat',
      timestamps: false
    });
    

    Dans cet exemple :

- `Cat` extends Sequelize’s `Model` class.
- `init()` sets up the model with column definitions and configuration.
- We use `DataTypes.STRING` and `DataTypes.INTEGER` to define column types.
- `timestamps: false` disables automatic timestamp fields (`createdAt` and `updatedAt`).

Interrogation de données

Sequelize propose une gamme de méthodes pour interroger votre base de données. Voici comment récupérer des données à l’aide de Sequelize :

  1. Récupérer tous les enregistrements

    Pour récupérer tous les enregistrements de la table cats :

    const results = await Cat.findAll();
    console.log(results);
    

    findAll() renvoie une promesse qui se résout en un tableau d'instances représentant les lignes du tableau.

  2. Limiter les colonnes récupérées

    Si vous n'avez besoin que de certaines colonnes, utilisez l'option d'attributs :

    const results = await Cat.findAll({
      attributes: ['age']
    });
    console.log(results);
    
  3. Ajouter une clause WHERE

    Pour filtrer les résultats, utilisez l'option où. Par exemple, pour retrouver tous les chats âgés de 8 ans :

    const results = await Cat.findAll({
      where: {
        age: 8
      }
    });
    console.log(results);
    

    Pour retrouver tous les chats âgés de 5 ans ou plus :

    const { Op } = require('sequelize');
    
    const results = await Cat.findAll({
      where: {
        age: {
          [Op.gte]: 5
        }
      }
    });
    console.log(results);
    
  4. Appliquer le tri et la limitation

    Pour trier les résultats et limiter le nombre de lignes renvoyées :

    const results = await Cat.findAll({
      limit: 10,
      order: [
        ['name', 'DESC']
      ]
    });
    console.log(results);
    

Insertion de données

Pour insérer un nouvel enregistrement dans la base de données, utilisez la méthode create() :

const name = 'Garfield';
const age = 8;

const result = await Cat.create({ name, age });
console.log('New Cat:', result);

Mise à jour des données

Pour mettre à jour les enregistrements existants, utilisez la méthode update() :

await Cat.update(
  { age: 9 },
  {
    where: {
      name: 'Garfield'
    }
  }
);

Si vous souhaitez mettre à jour toutes les lignes (soyez prudent avec cette opération), omettez la clause Where :

await Cat.update(
  { age: 10 }
);

Conclusion

Dans ce tutoriel, nous avons exploré comment utiliser Sequelize pour interagir avec une base de données PostgreSQL. Nous avons commencé par installer et configurer Sequelize, puis avons créé des modèles pour représenter les tables de base de données.

Nous avons appris à interroger, insérer et mettre à jour des données à l'aide des méthodes de Sequelize. Ce puissant ORM simplifie le travail avec les bases de données relationnelles en fournissant une abstraction de niveau supérieur sur les requêtes SQL.

Pour une exploration plus approfondie de Sequelize et de ses fonctionnalités, consultez les ressources suivantes :

  • Séqueliser la documentation
  • Documentation PostgreSQL
  • Documentation Node.js

En tirant parti de Sequelize, vous pouvez rationaliser les interactions de votre base de données et vous concentrer davantage sur la création d'applications robustes. Bon codage !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Tableaux JavaScriptArticle suivant:Tableaux JavaScript