0% ont trouvé ce document utile (0 vote)
30 vues11 pages

Introduction à Sequelize ORM

Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues11 pages

Introduction à Sequelize ORM

Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

2015/2016 Antoine Roux, Mickael Bettinelli

Plan

Introduction

I- Les modèles

II- Les promesses

III- Les fonctionnalités

IV- Démonstration

Conclusion
Présentation
1. var sequelize = new Sequelize('database', 'username',
Sequelize est un ORM basé sur les promesses 'password', {
pour [Link] et [Link] 2.
3.
host: 'localhost',
dialect:
'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql',
Compatibilité avec PostgreSQL, MySQL, 4. pool: {
max: 5,
MariaDB, SQLite et MSSQL 5. min: 0,
6. idle: 10000
7. },

// SQLite only
Installation avec NPM : 8. storage: 'path/to/[Link]'
9. });
Installation des drivers “postgres” et d’une dépendance pour
10.
(dé)sérializer du json, installation de Sequelize 11. var sequelize = new
12. Sequelize('postgres://user:pass@[Link]/dbname');
$ npm install --save-dev pg-hstore pg

$ npm install --save sequelize


Les modèles - En théorie

Objets permettant d’accéder à une table.

Disposent des noms de colonnes de la table.

Création des attributs createAt et updateAt automatique.

Accesseurs pour accéder aux données du modèle.


Les modèles - En javascript
1. var Modele = [Link](‘maTable’, { :
2. attribut: { :
3. type: [Link], :
4. primaryKey: true,
5. set: function(val) {
6. // setter qui mets en majuscule avant ajout dans le modèle
[Link]('attribut', [Link]());
}
7. }
8. // [Link], [Link] ... :
9. }) :

Possibilité d’ajouter des options aux attributs (primaryKey, unique, ...).

Plusieurs types de données disponibles comme INTEGER, STRING, TEXT.


Les promesses
Système de gestion des méthodes asynchrones

.then(function() {}); ⇒ exécution de la fonction lorsque la promesse est finie.

.catch(function() {}); ⇒ exécution de la fonction lors d’une erreur.

.done(function() {}); ⇒ exécution de la fonction si la promesse fini avec succès.

.all([promese1, promese2]).then(function() {} );

⇒ exécution de la fonction lorsque toutes les promesses sont terminées.


Les fonctionnalités - La syntaxe
1. [Link]({force: true}) // Synchronisation du modèle avec la table du SGBD
2. // Création de la table si elle n’existe pas, force : efface et récrée la table
3.
4. // Insère une ligne dans la table
5. [Link]( {id: “6”, nom: “toto”, mail: “toto@[Link]”} );
6.
7. [Link](); // Efface la table
8.
9. [Link]({ // Lance un Select sur la table
10. attributes: ['id', 'titre', 'description', 'date', 'numC'],
11. where: {
12. date: {
13. gt: 2010 // Si l’attribut est plus grand que 10
14. },
15. }
16. }).then(function(resultat) {
17. //traitement du résultat
18. });
Les fonctionnalités - Quelques méthodes utiles
Relier une clé étrangère avec une clé primaire d’une autre table
1. [Link](Company); // Clé étrangère : de un à un
2. [Link](User, {as: 'Workers'}) // Clé étrangère : de un à plusieurs

Exécution d’une requête SQL

1. [Link]('SELECT * FROM "Chercheurs"', { model: Chercheurs}).then( function(p) {


2. [Link](p);
3. });

Import d’un modèle depuis un fichier stocké sous forme de module


1. [Link](“./[Link]”);
Avant Fragmentation
Après Fragmentation
Démonstration

BD : Lyon BD : Valence

Chercheur Chercheur
Publis
Chercheur
for inner join Query publis …
id
...
#IdChercheur

Publis < 2010 Publis >= 2010


... …
Query publis
#IdChercheur #IdChercheur
Pour conclure Autre ORM javascript :
Manque du SGBD Oracle - Bookshelf
Simple à prendre en main - [Link]
- Pg-promise
Open Source - offShore
- [Link]
Bonne communauté
- [Link]

Utilisé par :
- timeOff : [Link]
- Verizon Cloud : [Link]
- SEAN : Full stack JS sql based on MEANJS.
Questions

Documentation officielle : [Link]


Tutoriel : [Link]
Github : [Link]

Vous aimerez peut-être aussi