Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation. En savoir plus.

Sequelize est un mappeur objet-relationnel (ORM) Node.js qui fournit une API facile à utiliser pour les bases de données relationnelles telles qu'Oracle, PostgreSQL, MySQL, MariaDB, SQLite, etc.

PostgreSQL est un système de gestion de base de données relationnelle (RDBMS) open source largement utilisé, réputé pour ses fonctionnalités étendues, son excellente sécurité et son évolutivité.

PostgreSQL est compatible avec plusieurs langages de programmation, y compris JavaScript, ce qui en fait un choix idéal pour les applications Web et basées sur les données. Ici, vous apprendrez à configurer une base de données Postgres dans Node.js à l'aide de Sequelize.

Étape 1: Installer les dépendances

Avant de pouvoir utiliser PostgreSQL, vous devez l'installer sur votre système. Pour télécharger PostgreSQL, accédez au Site Web PostgreSQL

instagram viewer
et choisissez votre système d'exploitation. Si vous rencontrez des problèmes au cours de ce processus sur macOS, consultez installation de PostgreSQL sur macOS.

Alternativement, vous pouvez utiliser PostgreSQL sur le cloud en tirant parti de plates-formes telles que ElephantSQL qui offrent PostgreSQL en tant que service.

Ensuite, installez séquelle en exécutant la commande suivante :

séquelle d'installation npm

Ensuite, installez le pilote de base de données PostgreSQL en exécutant la commande ci-dessous :

npm installer pg pg-hstore

Étape 2: Connexion à une base de données PostgreSQL

Dans le répertoire source de votre projet, créez un configuration dossier. Dans le configuration dossier, créez un db.js déposer. Ce fichier contiendra tout le code connectant votre application Node.js à une base de données PostgreSQL.

Ensuite, dans votre db.js fichier, importer séquelle depuis séquelle.

constante { Séquelle } = exiger("séquelle");

Ensuite, vous devez créer un séquelle exemple. Cette instance prend des paramètres de connexion tels que le nom de la base de données, le nom d'utilisateur et le mot de passe comme arguments. Alternativement, il prend un seul URI de connexion comme argument.

Par exemple:

// Paramètres de connexion
constante séquelle = nouveau Séquelle ('base de données', 'nom d'utilisateur', 'mot de passe')

// avec URI
constante séquelle = nouveau Sequelize (process.env. POSTGRESQL_DB_URI)

De plus, ce constructeur prend un objet de configuration comme argument facultatif.

Ensuite, testez votre connexion sequelize en ajoutant le code sous votre db.js déposer:

constante testDbConnection = asynchrone () => {
essayer {
attendre sequelize.authenticate();
console.enregistrer("La connexion a été établie avec succès.");
} attraper (erreur) {
console.erreur("Impossible de se connecter à la base de données :", erreur);
}
};

Le bloc de code ci-dessus appelle le séquelle.authentifier() méthode pour tester si la connexion est OK et affiche "La connexion a été établie avec succès." consoler si c'est le cas. S'il y a une erreur de connexion, il affiche "Impossible de se connecter à la base de données :" avec l'erreur.

Enfin, exportez l'instance sequelize et le testDbConnectiontestDbConnection fonction.

module.exports = { : sequelize, testDbConnection };

Étape 3: Création d'un modèle de séquençage

Dans le répertoire source de votre projet, créez un des modèles dossier. Ce dossier contiendra tous vos modèles séquentiels. Ensuite, créez un fichier modèle. Le nom que vous donnez au fichier doit fournir des informations sur la représentation du modèle.

Dans votre fichier de modèle, importez l'instance sequelize.

// exemple.js
constante { carré } = exiger("../config/db");

Ensuite, importez Types de données depuis séquelle.

constante { Types de données } = exiger("séquelle");

Types de données vous permet de définir le type de données requis pour chaque propriété de votre modèle.

Vous pouvez créer un nouveau modèle de séquençage représentant une table dans votre base de données en appelant le définir méthode sur votre instance sequelize.

Le définir La méthode prend deux arguments: le nom du modèle et un objet d'attributs. Le nom du modèle représente le nom du modèle. L'objet attributs représente les colonnes de la base de données, chaque propriété représentant une colonne.

Voici un exemple de modèle de séquençage :

constante Utilisateur = sq.define("utilisateur", {
e-mail: {
type: Types de données. CHAÎNE,
permettre null: FAUX,
clé primaire: vrai,
},

nom et prénom: {
type: Types de données. CHAÎNE,
},

âge: {
type: Types de données. ENTIER,
},

employé: {
type: Types de données. BOOLÉEN,
valeur par défaut: FAUX,
},
});

Le bloc de code ci-dessus définit un Utilisateur modèle avec un e-mail, nom et prénom, âge, et employé propriétés.

Le e-mail propriété est un type de chaîne qui ne peut pas être vide (allowNull: faux) et sert également de clé primaire pour le Utilisateur tableau (clé primaire: vrai). Le nom et prénom et le âge propriété sont une chaîne (Types de données. CHAÎNE) et de type entier (Types de données. ENTIER), respectivement. Le employé propriété est un type booléen avec une valeur par défaut de FAUX, ce qui signifie que s'il n'est pas spécifié, il sera automatiquement défini sur false dans la base de données.

Ensuite, appelez le synchroniser méthode sur votre modèle. Cette méthode prend un objet de configuration comme argument. Selon les options de l'objet de configuration, le synchroniser méthode peut :

  • Utilisateur.sync(): Crée la table si elle n'existe pas et ne fait rien si elle existe.
  • Utilisateur.sync({ force: vrai }): Créez la table et supprimez la première si elle existe déjà.
  • Utilisateur.sync({ alter: vrai }): Vérifiez l'état actuel de la table dans la base de données et effectuez les modifications nécessaires dans la table pour qu'elle corresponde au modèle.

Par exemple:

Utilisateur.sync().then(() => {
console.enregistrer("Modèle utilisateur synchronisé");
});

Le bloc de code ci-dessus crée la table de base de données pour le Utilisateur modèle s'il n'existe pas et ne fait rien s'il existe.

Enfin, exportez votre modèle :

module.exports = Utilisateur ;

Interroger une base de données PostgreSQL

Sequelize fournit diverses méthodes qui vous permettent d'interagir avec votre base de données PostgreSQL sans écrire de données brutes. Commandes SQL.

Enregistrement de données dans PostgreSQL

Pour enregistrer des données dans une base de données PostgreSQL, appelez le créer sur votre modèle et transmettez un objet qui implémente le modèle PostgreSQL en tant qu'argument.

Par exemple:

constante Mike = Utilisateur.create({
e-mail: "[email protected]",
nom et prénom: "Mike Smith",
âge: 30,
employé: vrai,
});

Le bloc de code ci-dessus crée un Utilisateur exemple de Mike dans votre base de données et génère automatiquement un identifiant unique.

Récupération de données depuis PostgreSQL

Les données peuvent être récupérées de plusieurs manières à partir d'une base de données PostgreSQL à l'aide de sequelize, mais cela dépend de la nature des données que vous souhaitez recevoir.

Les méthodes les plus courantes pour récupérer des données sont les trouver un et Trouver tout méthodes. Le Trouver tout renvoie toutes les instances de données qui satisfont une requête donnée, tandis que trouver un renvoie la première instance qui satisfait la requête.

Par exemple:

// Trouver tous les utilisateurs
constante utilisateurs = attendre User.findAll();

Le code ci-dessus renverra tous les Utilisateur instances dans la base de données.

Vous pouvez filtrer les données renvoyées à l'aide de la déclaration. Cette instruction vous permet d'ajouter certaines conditions à la requête. Votre requête renverra uniquement les instances qui remplissent ces conditions.

Par exemple:

Utilisateur.findAll({
où: {
employé: FAUX
}
});

Le code ci-dessus renverra tous les Utilisateur instances avec leur employé propriété définie sur FAUX dans la base de données.

Mise à jour des données sur PostgreSQL

Vous pouvez mettre à jour les données sur la base de données PostgreSQL en appelant le mise à jour méthode et en passant un filtre comme argument.

Par exemple:

attendre Utilisateur.mise à jour({ employé: vrai }, {
où: {
employé: FAUX
}
});

Le code ci-dessus change tous les Utilisateur instances avec un employé valeur de FAUX pour vrai.

Vous pouvez également mettre à jour les données en modifiant manuellement les propriétés que vous souhaitez modifier et en appelant le sauvegarder méthode sur l'instance.

Par exemple:

constante utilisateurMike = attendre Utilisateur.findOne({ : { e-mail: "[email protected]" } });

si(utilisateurMike !== nul) {
utilisateurMike.email = "[email protected]"
attendre userMike.save()
}

Le code ci-dessus interroge la base de données pour un utilisateur ayant l'e-mail "[email protected]" en utilisant le trouver un méthode. Si l'utilisateur est trouvé, il réaffecte la propriété email à "[email protected]" et appelle le sauvegarder méthode pour mettre à jour la base de données.

Suppression de données sur PostgreSQL

Vous pouvez supprimer des données sur PostgreSQL en appelant le détruire méthode et en passant un filtre comme argument.

Par exemple:

attendre Utilisateur. détruire ({
où: {
e-mail: "[email protected]"
}
});

Le code ci-dessus interroge la base de données pour un utilisateur ayant l'e-mail "[email protected]" et supprime l'utilisateur de la base de données.

Avantages de l'utilisation de PostgreSQL avec Sequlize

L'écriture de requêtes SQL brutes pour interagir avec une base de données PostgreSQL peut être fastidieuse. Avec Sequelize, vous pouvez facilement définir des modèles, créer des associations entre eux et interroger la base de données avec une API simple et intuitive. Alternativement, vous pouvez utiliser d'autres ORM, tels que TypeORM, pour interagir avec une base de données PostgreSQL sans avoir à écrire des requêtes SQL brutes.