| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- /**
- * ATTENTION le fichier sandboxApp.js est assez complexe.
- * Il sert à initialiser l'appli permettant d'avoir l'éditeur HTML&JavaScript en ligne
- */
- var app = require('./sandboxApp');
- /*-------------------------------------------------------*
- | Déclaration de gestionnaires pour les exemples AJAX
- *-------------------------------------------------------*
- |
- */
- // 1er exemple: envoie du HTML généré dynamiquement.
- // On utilise app.get pour attacher un gestionnaire à l'URL /ajax-example
- // uniquement avec la méthode GET
- app.get('/ajax-example', function(req, res) {
- var date = new Date();
- var exampleHtml = '<p>Un peu de HTML retourné par le serveur.</p>' +
- '<p><em>Généré le: ' + date.toString() + '</em></p>';
- res.send(exampleHtml);
- });
- // 2ème exemple : envoi formulaire par méthode GET
- // Notez bien d'où on extrait les paramètres passé par le client (req.query)
- app.get('/ajax-form-get', function(req, res) {
- var name = req.query.name;
- var birthdate = req.query.birthdate;
- var exampleHtml = '<p>Salutations, <em>' + name +
- '</em>, né(e) le <em>' + birthdate + '</em>.</p>';
- res.send(exampleHtml);
- });
- // 3ème exemple : envoi formulaire par méthode POST
- // Ici les paramètres viennent de req.body
- app.post('/ajax-form-post', function(req, res) {
- var title = req.body.title;
- var text = req.body.text;
- var exampleHtml = '<h2>' + title + '</h2>' +
- '<p>' + text + '</p>';
- res.send(exampleHtml);
- });
- /**
- * Création d'un tableau vide où on va stocker les utilisateurs
- */
- var userList = [];
- var userId = 1;
- /**
- * Création d'un utilisateur : on le stocke dans le tableau userList
- * ATTENTION ! Dans la "vraie vie", on utiliserait une base de données !
- */
- function createNewUser(user) {
- // On vérifie que les données de l'utilisateur sont renseignées
- // Si non, on renvoie false
- if(! user || ! user.username || ! user.email || ! user.password) {
- return false;
- }
- // L'étape de vérification a réussi, on insère l'utilisateur dans le tableau
- // On crée un faux "id" pour simuler une insertion SQL. En SQL les "id" sont
- // incrémentés à chaque insertion. On simule cela en incrémentant un compteur
- // "userId" à chaque insertion
- userList.push({
- id: userId++,
- username: user.username,
- email: user.email,
- password: user.password
- });
- return true;
- }
- /**
- * Ce code va gérer la requête POST vers l'URL /register de notre micro-serveur
- */
- app.post('/register', function(req, res) {
- // Les données envoyées par le client (navigateur) sont dans la propriété "body"
- // de l'objet req (pour request)
- var user = req.body;
- // createNewUser() va nous renvoyer true ou false
- var success = createNewUser(user);
- if(success) {
- // Envoyer un message sur la console du serveur
- console.log('Utilisateur enregistré: ', user, '\nListe des utilisateurs', userList);
- res.json({ user: user });
- }
- else {
- res.status(400).json({ error: 'Champs manquants dans la requête' });
- }
- });
- app.get('/username-check', function(req, res) {
- var username = req.query.username;
- for(u = 0 ; u < userList.length ; u++) {
- if(username === userList[u].username) {
- return res.json({ success: false });
- }
- }
- res.json({ success: true });
- });
- console.log('Le serveur écoute sur le port 3000. Laissez cette console ouverte !')
- app.listen(3000);
|