Salut ! J'ai un soucis sur ma requette http PATCH sur mon application Angular. Voila le topo, j'ai un objet Session qui contient un array d'Etudiant. Mes sessions sont deja enregistrées dans ma bdd (mongo). Le but est donc de pouvoir ajouter un etudiant à une session de la bdd. J'obtiens une erreur 500, et je n'ai meme pas l'impression que le serveur recoive la requete (pas possible d'afficher un console.log sur le serveur)
Je sais pas si je suis clair peut etre que le code parlera plus (le bouton html appelle rejoindreSession()) :
Client :
DetailsSessionService
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public rejoindreSession(): void { const genie = this.choixGenie(); const etudiant = new Etudiant(this.prenom, this.nom, genie, this.mail, this.avatar); this.session.ajouterEtudiant(etudiant); //A ce moment this.session est correct et contient bien le nouvel etudiant this.detailsSessionService.ajouterEtudiant(this.session); }
Code : 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 export const URL_AJOUT_ETUDIANT = 'http://localhost:3000/ajouterEtudiant'; @Injectable() export class DetailsSessionService { constructor(public http: Http) {} public ajouterEtudiant(session: Session): Promise<JSON> { return this.http.patch(URL_AJOUT_ETUDIANT, session) .toPromise() .then((reponse: Response) => reponse.json()) .catch((erreur: Response) => console.log(erreur.json())); } }
Sur le serveur je catch la requete :
et index :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 router.patch('/ajouterEtudiant', index.ajouterEtudiant.bind(index.ajouterEtudiant));
(Comme j'ai dit le console.log('Modification session serveur !') ne s'affiche pas sur la console du serveur..
Code : 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 public ajouterEtudiant(req: express.Request, res: express.Response, next: express.NextFunction): void { console.log('Modification session serveur !'); modelDeSession.findOne({ guid: req.body.guid, }, function (err: any, session: SessionModele){ if (err) { return res.status(500).json({ title: 'Modification impossible', error: err }); } session.listeParticipants = req.body.listeParticipants; session.save((error: any, resultat: SessionModele) => { if (error) { return res.status(500).json({ title: 'une erreur est survenue lors de la modification', error: error }); } res.status(200).json({ message: 'La session est modifiee', obj: resultat }); }); }); }
Voila merci de votre aide !
Partager