server.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /**
  2. * ATTENTION le fichier sandboxApp.js est assez complexe.
  3. * Il sert à initialiser l'appli permettant d'avoir l'éditeur HTML&JavaScript en ligne
  4. */
  5. var app = require('./sandboxApp');
  6. /*-------------------------------------------------------*
  7. | Déclaration d'un gestionnaire pour GET /ajax-example
  8. *-------------------------------------------------------*
  9. |
  10. */
  11. app.get('/ajax-example', function(req, res) {
  12. var exampleHtml = '<h2>AJAX</h2><p>Un peu de HTML retourné par le serveur.</p>';
  13. res.send(exampleHtml);
  14. });
  15. /**
  16. * Création d'un tableau vide où on va stocker les utilisateurs
  17. */
  18. var userList = [];
  19. var userId = 1;
  20. /**
  21. * Création d'un utilisateur : on le stocke dans le tableau userList
  22. * ATTENTION ! Dans la "vraie vie", on utiliserait une base de données !
  23. */
  24. function createNewUser(user) {
  25. // On vérifie que les données de l'utilisateur sont renseignées
  26. // Si non, on renvoie false
  27. if(! user || ! user.username || ! user.email || ! user.password) {
  28. return false;
  29. }
  30. // L'étape de vérification a réussi, on insère l'utilisateur dans le tableau
  31. // On crée un faux "id" pour simuler une insertion SQL. En SQL les "id" sont
  32. // incrémentés à chaque insertion. On simule cela en incrémentant un compteur
  33. // "userId" à chaque insertion
  34. userList.push({
  35. id: userId++,
  36. username: user.username,
  37. email: user.email,
  38. password: user.password
  39. });
  40. return true;
  41. }
  42. /**
  43. * Ce code va gérer la requête POST vers l'URL /register de notre micro-serveur
  44. */
  45. app.post('/register', function(req, res) {
  46. // Les données envoyées par le client (navigateur) sont dans la propriété "body"
  47. // de l'objet req (pour request)
  48. var user = req.body;
  49. // createNewUser() va nous renvoyer true ou false
  50. var success = createNewUser(user);
  51. if(success) {
  52. // Envoyer un message sur la console du serveur
  53. console.log('Utilisateur enregistré: ', user, '\nListe des utilisateurs', userList);
  54. res.json({ user: user });
  55. }
  56. else {
  57. res.status(400).json({ error: 'Champs manquants dans la requête' });
  58. }
  59. });
  60. app.get('/username-check', function(req, res) {
  61. var username = req.query.username;
  62. for(u = 0 ; u < userList.length ; u++) {
  63. if(username === userList[u].username) {
  64. return res.json({ success: false });
  65. }
  66. }
  67. res.json({ success: true });
  68. });
  69. console.log('Le serveur écoute sur le port 3000. Laissez cette console ouverte !')
  70. app.listen(3000);