Passer au contenu du pied de page
AIDE NODE

Sequelize node js (Comment ça marche pour les développeurs)

Sequelize Node.JS

Dans le monde du développement web contemporain, créer des applications évolutives et fiables nécessite des outils et bibliothèques puissants qui peuvent gérer efficacement les opérations front-end et back-end. Deux de ces utilitaires sont Sequelize et IronPDF, qui, combinés, offrent une solution complète pour la production de PDF et la gestion de bases de données dans les applications Node.js.

Sequelize est un Object Relational Mapping (ORM) basé sur les promesses pour Node.js qui facilite le travail avec les bases de données SQL. Avec son vaste support des dialectes SQL, y compris PostgreSQL, MySQL, SQLite et Microsoft SQL Server (MSSQL), les développeurs peuvent utiliser JavaScript pour construire des modèles et des relations. Sequelize améliore l'expérience des développeurs en abstraisant les requêtes SQL de base de données dans une syntaxe compréhensible et simplifie les opérations de bases de données complexes avec des fonctionnalités telles que la validation des modèles, le chargement avides et les transactions.

À l'inverse, IronPDF est une bibliothèque robuste pour générer des PDFs qui interagissent facilement avec les applications Node.js. Elle permet aux programmeurs d'ajouter, modifier et supprimer du contenu dans des documents PDF. Avec sa capacité exceptionnelle à convertir des informations HTML en format PDF, IronPDF est un excellent outil pour produire directement des sorties basées sur des documents à partir d'applications en ligne, telles que des factures et des rapports.

Qu'est-ce que Sequelize Node.js ?

Sequelize pour Node.js est un puissant Object Relational Mapping (ORM) qui offre un support solide des transactions, garantissant des opérations fiables et atomiques sur votre base de données. En utilisant le modèle Sequelize, les développeurs peuvent définir et interagir efficacement avec leurs structures de données. Les fonctionnalités telles que le chargement paresseux permettent des requêtes de bases de données optimisées, ne récupérant les données liées que lorsqu'elles sont nécessaires. Le mapper objet-relationnel Sequelize simplifie l'interaction avec les bases de données en utilisant le chargement paresseux, rendant le travail avec une base de données exemple ou un système de production direct. Avec une configuration facile des informations d'identification de mot de passe de base de données, Sequelize prend en charge diverses bases de données, notamment la base de données MySQL, ce qui en fait un choix polyvalent pour les applications Node.js.

Sequelize node js (Comment ça fonctionne pour les développeurs) : Figure 1 - Support solide des transactions Sequelize

Fonctionnalités de Sequelize Node.js

Un Object-Relational Mapper (ORM) apprécié appelé Sequelize pour Node.js facilite le travail avec les bases de données relationnelles et les requêtes SQL brutes. Voici quelques-unes de ses caractéristiques saillantes :

Promesses : Contrairement aux callbacks conventionnels, Sequelize utilise les Promesses pour les opérations asynchrones, ce qui se traduit par un code plus propre et plus simple à lire.

Prise en charge des bases de données : Il vous permet de choisir parmi une variété de bases de données relationnelles largement utilisées, y compris PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server, et plus encore.

Définition de modèle : En utilisant des objets JavaScript, Sequelize vous permet de définir des modèles qui se mappent à vos tables de base de données. En conséquence, écrire du SQL brut est moins nécessaire et la modélisation des données est simplifiée.

Associations : Sequelize est très bon pour gérer les relations de table. Vous pouvez spécifier des relations entre vos modèles, telles que un-à plusieurs, plusieurs-à-plusieurs, et un-à-un, et Sequelize gérera les requêtes SQL complexes en arrière-plan.

Transactions : Lors de l'exécution de plusieurs opérations de base de données, le support solide des transactions de Sequelize garantit la cohérence des données.

Synchronisation des données : Vos modèles et la structure de votre base de données peuvent être automatiquement synchronisés avec Sequelize. Lors de la création ou de la mise à jour des tables en fonction de vos définitions de modèle, cela peut être utile.

Migrations : Sequelize fournit un système de migration efficace qui vous permet de gérer les changements de la structure de la base de données au fil du temps. Il est impératif de maintenir l'alignement entre la structure de votre base de données et le code de l'application.

Validations : Avant que les données ne soient stockées dans la base de données, vous pouvez établir des règles de validation pour vos modèles afin de garantir l'intégrité des données.

Requêtes Brutes : Bien que Sequelize encourage l'utilisation de sa couche d'abstraction, vous pouvez également l'utiliser pour exécuter des requêtes SQL brutes lorsque nécessaire pour des charges de travail particulières.

Seeding : Pour des raisons de test ou de développement, Sequelize offre un moyen de semer votre base de données avec certaines données de départ.

Scopes : En définissant des filtres réutilisables pour vos requêtes de modèles, les scopes vous aident à mieux gérer la récupération de données complexes.

Cela ne représente qu'une fraction des nombreuses fonctionnalités de Sequelize. Il est un outil inestimable pour les développeurs Node.js traitant avec des bases de données relationnelles grâce à ses fonctionnalités complètes.

Créer et configurer Sequelize Node.js

Vous pouvez utiliser ces étapes pour créer et configurer Sequelize avec SQLite3 dans un projet Node.js :

Installer les dépendances

Installez l'interface en ligne de commande de Sequelize (Sequelize CLI), SQLite3 et Sequelize en tant que dépendances dans votre projet.

npm install sequelize
npm install sqlite3
npm install sequelize-cli
npm install sequelize
npm install sqlite3
npm install sequelize-cli
SHELL

Initialiser Sequelize

Commencez à zéro. Configurez la structure du projet et les fichiers de configuration avec Sequelize en utilisant le CLI.

npx sequelize-cli init
npx sequelize-cli init
SHELL

Les répertoires et fichiers requis pour votre projet Sequelize sont créés par la commande ci-dessus.

Configurer la base de données

Pour configurer la connexion de la base de données, éditez le fichier config.json. Votre configuration SQLite3 pourrait ressembler à ceci :

{
  "development": {
    "dialect": "sqlite",
    "storage": "./database/development.sqlite"
  },
  "test": {
    "dialect": "sqlite",
    "storage": ":memory:"
  },
  "production": {
    "dialect": "sqlite",
    "storage": "./database/production.sqlite"
  }
}

Différentes bases de données SQLite sont spécifiées dans cette configuration pour les environnements de test, de production et de développement.

Créer des modèles

Utilisez le CLI pour créer un fichier pour les modèles Sequelize. À titre d'illustration, pour développer un modèle User :

npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
SHELL

Cette commande crée un fichier de migration dans le répertoire des migrations et un fichier modèle (user.js) dans le répertoire des modèles.

Exécuter les migrations

Pour construire des tables dans la base de données SQLite, exécutez des migrations.

npx sequelize-cli db:migrate
npx sequelize-cli db:migrate
SHELL

Utiliser Sequelize dans l'application

Vous pouvez maintenant interagir avec la base de données SQLite dans votre application Node.js en utilisant Sequelize. Voici un exemple de comment configurer et utiliser Sequelize :

// Import Sequelize and model definitions
const { Sequelize, DataTypes } = require('sequelize');
const UserModel = require('./models/user');

// Create Sequelize instance
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database/development.sqlite', // Path to SQLite database file
});

// Define models
const User = UserModel(sequelize, DataTypes);

// Synchronize models with the database
sequelize.sync({ force: true }) // Set force to true to drop existing tables
  .then(() => {
    console.log('Database synchronized');
  })
  .catch((error) => {
    console.error('Error synchronizing database:', error);
  });

// Example usage
(async () => {
  try {
    // Create a new user
    const user = await User.create({
      firstName: 'John',
      lastName: 'Doe',
      email: 'john@example.com',
    });
    console.log('User created:', user.toJSON());

    // Retrieve all users
    const users = await User.findAll();
    console.log('All users:', users.map((user) => user.toJSON()));
  } catch (error) {
    console.error('Error:', error);
  }
})();
// Import Sequelize and model definitions
const { Sequelize, DataTypes } = require('sequelize');
const UserModel = require('./models/user');

// Create Sequelize instance
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database/development.sqlite', // Path to SQLite database file
});

// Define models
const User = UserModel(sequelize, DataTypes);

// Synchronize models with the database
sequelize.sync({ force: true }) // Set force to true to drop existing tables
  .then(() => {
    console.log('Database synchronized');
  })
  .catch((error) => {
    console.error('Error synchronizing database:', error);
  });

// Example usage
(async () => {
  try {
    // Create a new user
    const user = await User.create({
      firstName: 'John',
      lastName: 'Doe',
      email: 'john@example.com',
    });
    console.log('User created:', user.toJSON());

    // Retrieve all users
    const users = await User.findAll();
    console.log('All users:', users.map((user) => user.toJSON()));
  } catch (error) {
    console.error('Error:', error);
  }
})();
JAVASCRIPT

Ce code montre comment construire des modèles, les synchroniser avec la base de données, configurer Sequelize avec SQLite3, et effectuer des opérations de base sur la base de données.

Sequelize node js (Comment ça fonctionne pour les développeurs) : Figure 2 - Sortie de l'application Sequelize

Démarrage

Pour commencer, nous construirons une application exemple qui utilise IronPDF et Sequelize Node.js JS pour créer un document PDF avec des données utilisateur ou étudiant générées dynamiquement. Ceci est un manuel d'instruction complet et étape par étape.

Qu'est-ce que IronPDF?

IronPDF est un ensemble de bibliothèques d'application conçu pour simplifier la création, la modification et la gestion de fichiers PDF. Avec cet outil, les développeurs peuvent extraire du texte et des images de documents HTML, ajouter des en-têtes et des filigranes, fusionner de nombreux documents PDF, et effectuer une variété d'autres activités. La documentation complète d'IronPDF et son API intuitive permettent aux développeurs de générer automatiquement des documents PDF de haute qualité. IronPDF inclut toutes les fonctionnalités et fonctionnalités nécessaires pour améliorer les flux de travail des documents et fournir des expériences utilisateur de premier ordre dans divers scénarios, tels que la création de documentation, de rapports, et de factures.

Sequelize node js (Comment ça fonctionne pour les développeurs) : Figure 3 - IronPDF

Caractéristiques de IronPDF

Conversion HTML en PDF est une méthode rapide et simple qui peut gérer tout type de texte HTML, y compris CSS et JavaScript.

Fusion de fichiers PDF : Pour simplifier les tâches de gestion de documents, combinez plusieurs documents PDF en un seul fichier PDF.

Extraction de texte et d'image : Extrayez le texte et les images des fichiers PDF afin de les utiliser pour un traitement ou une analyse supplémentaires des données.

Filigranage : Pour des raisons de sécurité ou de marque, vous pouvez ajouter des filigranes texte ou image aux pages PDF.

Inclure En-tête et Pied de page : Les en-têtes et pieds de page des documents PDF vous permettent d'inclure un message personnalisé ou des numéros de page.

Installer IronPDF

Pour permettre la fonctionnalité d'IronPDF, installez les packages Node.js nécessaires à l'aide du gestionnaire de packages node.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Intégrer l'objet Sequelize avec IronPDF Node.js

Intégrer Sequelize avec IronPDF sur une application Node.js vous permet de générer des documents PDF en fonction des données reçues d'une base de données. Voici un exemple de code montrant comment y parvenir.

const { Sequelize, DataTypes } = require('sequelize');
const IronPdf = require("@ironsoftware/ironpdf");
const { PdfDocument } = IronPdf; // Use destructuring to import specific components

// 1. Initialize Sequelize
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database/data.sqlite', // Path to SQLite database file
});

// 2. Define Model
const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  lastName: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
    validate: {
      isEmail: true,
    },
  },
});

// 3. Synchronize Model with Database
sequelize.sync({ force: true }) // Set force to true to drop existing tables
  .then(() => {
    console.log('Database synchronized');
    // 4. Seed Database (optional)
    return User.bulkCreate([
      { firstName: 'John', lastName: 'Doe', email: 'john@example.com' },
      { firstName: 'Jane', lastName: 'Smith', email: 'jane@example.com' },
    ]);
  })
  .then(() => {
    // 5. Query Database and Generate PDF
    return User.findAll();
  })
  .then((users) => {
    // Create HTML content for PDF
    const htmlContent = `
      <html>
        <head>
          <title>User List</title>
        </head>
        <body>
          <h1>User List</h1>
          <ul>
            ${users.map((user) => `<li>${user.firstName} ${user.lastName} - ${user.email}</li>`).join('')}
          </ul>
        </body>
      </html>
    `;

    // Create PDF from HTML content
    PdfDocument.fromHtml(htmlContent).then((pdf) => {
      // Save PDF to file
      pdf.saveAs('user-list.pdf');
      console.log('PDF generated successfully');
    }).catch((error) => {
      console.error('Error generating PDF:', error);
    });
  })
  .catch((error) => {
    console.error('Error:', error);
  });
const { Sequelize, DataTypes } = require('sequelize');
const IronPdf = require("@ironsoftware/ironpdf");
const { PdfDocument } = IronPdf; // Use destructuring to import specific components

// 1. Initialize Sequelize
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database/data.sqlite', // Path to SQLite database file
});

// 2. Define Model
const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  lastName: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
    validate: {
      isEmail: true,
    },
  },
});

// 3. Synchronize Model with Database
sequelize.sync({ force: true }) // Set force to true to drop existing tables
  .then(() => {
    console.log('Database synchronized');
    // 4. Seed Database (optional)
    return User.bulkCreate([
      { firstName: 'John', lastName: 'Doe', email: 'john@example.com' },
      { firstName: 'Jane', lastName: 'Smith', email: 'jane@example.com' },
    ]);
  })
  .then(() => {
    // 5. Query Database and Generate PDF
    return User.findAll();
  })
  .then((users) => {
    // Create HTML content for PDF
    const htmlContent = `
      <html>
        <head>
          <title>User List</title>
        </head>
        <body>
          <h1>User List</h1>
          <ul>
            ${users.map((user) => `<li>${user.firstName} ${user.lastName} - ${user.email}</li>`).join('')}
          </ul>
        </body>
      </html>
    `;

    // Create PDF from HTML content
    PdfDocument.fromHtml(htmlContent).then((pdf) => {
      // Save PDF to file
      pdf.saveAs('user-list.pdf');
      console.log('PDF generated successfully');
    }).catch((error) => {
      console.error('Error generating PDF:', error);
    });
  })
  .catch((error) => {
    console.error('Error:', error);
  });
JAVASCRIPT
  • Initialisation de Sequelize : Sequelize doit être initialisé en créant une instance et en passant l'emplacement du fichier de base de données SQLite.
  • Définition de modèle : Créez un modèle User en définissant ses propriétés firstName, lastName et email.
  • Synchronisation du modèle et de la base de données : Alignez le modèle avec la base de données. Dans ce cas, les tables existantes sont supprimées et recréées en utilisant l'option force: true.
  • Seeder la base de données : Vous pouvez utiliser bulkCreate() pour semer facultativement la base de données avec quelques données initiales.
  • Interroger la base de données et générer un PDF : Pour récupérer les données utilisateur, interrogez le modèle utilisateur dans la base de données et générez un PDF. Ensuite, rédigez du contenu HTML qui utilise la liste d'utilisateurs comme exemple. Enfin, enregistrez le contenu HTML pour créer un fichier en utilisant IronPDF et le rendre sous forme de document PDF.

Sequelize node js (Comment ça fonctionne pour les développeurs) : Figure 4 - Sortie PDF

Conclusion

Enfin, combiner Sequelize avec IronPDF dans une application Node.js offre un moyen puissant de créer des documents PDF à la volée en utilisant des informations tirées d'une base de données. Les développeurs peuvent se concentrer sur la logique de l'application au lieu des complications de la base de données grâce à la couche ORM de Sequelize, qui abstrait la complexité des requêtes SQL et des interactions. Cela facilite l'entretien de la base de données.

Les développeurs peuvent rapidement modifier des données, interroger des enregistrements de base de données et obtenir des informations structurées en utilisant Sequelize. Cette intégration ouvre des possibilités pour générer différents types de rapports, factures, relevés, et plus encore directement à partir des données de la base de données lorsqu'elle est combinée avec IronPDF, qui permet de rendre les informations HTML en documents PDF.

IronPDF peut garantir des solutions logicielles riches en fonctionnalités et haut de gamme pour les clients et les utilisateurs finaux en intégrant les technologies IronPDF et Iron Software dans votre pile de développement d'applications d'entreprise. Cette base solide facilitera également les projets, les systèmes dorsaux et l'amélioration des processus. Des licences de produit sont disponibles à partir de $799. La documentation riche, la communauté de développeurs en ligne dynamique et les mises à jour fréquentes de ces technologies en font un excellent choix pour les projets de développement logiciel contemporain.

Darrius Serrant
Ingénieur logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'un baccalauréat en informatique de l'université de Miami et travaille comme ingénieur marketing WebOps Full Stack chez Iron Software. Attiré par le codage dès son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le ...

Lire la suite