| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /**
- * 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 d'un gestionnaire pour GET /ajax-example
- *-------------------------------------------------------*
- |
- */
- app.get('/ajax-example', function(req, res) {
- var exampleHtml = '<h2>AJAX</h2><p>Un peu de HTML retourné par le serveur.</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);
|