IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Open source et architecture logicielle

Tutoriel pour utiliser Sequelize, l'ORM JavaScript

Noter ce billet
par , 25/01/2016 à 23h49 (3591 Affichages)
Pour faire suite à mon précédant post : "Sequelize un ORM pour JavaScript", voici un tuto minimaliste pour faire afficher insérer et supprimer des objets dans une base de données relationnelle avec Node.js grâce à sequelize.
J'ai choisi comme SGBD/R PostgreSQL
L'objet à manipuler sera basé sur la classe personne :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
'use strict';
module.exports = class Personne 
{ 
    constructor(firstName, lastName)
	{ 
        this.prenom = firstName; 
        this.nom = lastName; 
    } 
 
    decrire()
	{ 
        console.log("nom : " + this.nom + " et prenom : " + this.prenom); 
    } 
 
	//.........
 
	//getter setter quelques méthodes pratiques
 
	//.........
}
Le template pour la vue sera le suivant :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<html>
    <head>
        <title>Carnet d'adresses</title>
    </head>
    <body>
        <h1>Carnet d'adresses</h1>
		<h2>Liste des utilisateurs</h2>
		<table>
			<thead>
				<tr>
				  <th>Nom</th>
				  <th>Prénom</th>
				</tr>
			</thead>
			<tbody>
				<%
                                        for(var i = 0 ; i < nbre ; i++) {
                                %>
					<tr>
					  <td><%= liste[i].nom %></td>
					  <td><%= liste[i].prenom %></td>
					</tr>
				<% } %>
			</tbody>
		</table>
		<form id="ajouter" action="/ajouter" method="post">
			<h2>Ajouter un utilisateur</h2>
			<p><label> Nom: </label>
			<input type="text" id="nom" name="nom"></input></p>
			<p><label> Prénom: </label>
			<input type="text" id="prenom" name="prenom"></input></p>
			<input type="submit" value="Ajouter"></input>
		</form>
		<form id="supprimer" action="/supprimer" method="post">
			<h2>Supprimer un utilisateur</h2>
			<p><label> Nom: </label>
			<input type="text" id="nomSup" name="nomSup"></input></p>
			<p><label> Prénom: </label>
			<input type="text" id="prenomSup" name="prenomSup"></input></p>
			<input type="submit" value="Supprimer"></input>
		</form>
	</body>
</html>
L'initialisation de la connexion à la bdd, le lancement du serveur HTTP, et la gestion des routes seront gérés ici :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
'use strict';
var app = require('express')();
var bodyParser = require('body-parser');
var Sequelize = require('sequelize');
var Personne = require('./Personne');
 
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
 
// initialisation de sequelize
var sequelize = new Sequelize('test', 'postgres', 'root', {
  host: 'localhost',
  dialect: 'postgres',
  pool: {
    max: 5,
    min: 0,
    idle: 10000
  },
});
 
// definition du modele personnes
var personnes = sequelize.define("personnes", {
    nom: Sequelize.STRING,
    prenom: Sequelize.STRING
});
 
personnes.sync().then(function(arg) {
	console.log("synchro ok");
});
 
var creerPersonne = function(prenom, nom){
	return (new Personne(prenom, nom));
}
 
var ajouterPersonne = function(pers){
	// inserer une personne en base
	personnes.create({
		nom: pers.nom,
		prenom: pers.prenom
	}).then(function(arg){
		console.log("1 ligne ajoutée");
	});
} 
 
var supprimerPersonne = function(pers){
	personnes.destroy({where: {nom: pers.nom, prenom: pers.prenom}}).then(function(arg){
		console.log(arg);
	});
}
 
app.get("/", function(req, res) {
	personnes.findAndCountAll().then(function(result) {
		res.render('index.ejs', {liste: result.rows, nbre: result.count}); 
	});
})
.post('/ajouter', function(req, res) {
    if (req.body.nom != '' && req.body.prenom != '') 
	{
		var pers = creerPersonne(req.body.prenom, req.body.nom);
		ajouterPersonne(pers);
    }
    res.redirect('/');
})
.post('/supprimer', function(req, res) {
    if (req.body.nomSup != '' && req.body.prenomSup != '') 
	{
		var pers = creerPersonne(req.body.prenomSup, req.body.nomSup);
		supprimerPersonne(pers);
    }
    res.redirect('/');
});
 
app.listen(5000);
Et voila comme ce Framework est puissant et simple à utiliser

Envoyer le billet « Tutoriel pour utiliser Sequelize, l'ORM JavaScript » dans le blog Viadeo Envoyer le billet « Tutoriel pour utiliser Sequelize, l'ORM JavaScript » dans le blog Twitter Envoyer le billet « Tutoriel pour utiliser Sequelize, l'ORM JavaScript » dans le blog Google Envoyer le billet « Tutoriel pour utiliser Sequelize, l'ORM JavaScript » dans le blog Facebook Envoyer le billet « Tutoriel pour utiliser Sequelize, l'ORM JavaScript » dans le blog Digg Envoyer le billet « Tutoriel pour utiliser Sequelize, l'ORM JavaScript » dans le blog Delicious Envoyer le billet « Tutoriel pour utiliser Sequelize, l'ORM JavaScript » dans le blog MySpace Envoyer le billet « Tutoriel pour utiliser Sequelize, l'ORM JavaScript » dans le blog Yahoo

Mis à jour 17/08/2016 à 19h38 par autran

Catégories
Javascript , Développement Web

Commentaires