backend.js 2.0 KB

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