Vous utilisez un navigateur obsolète, veuillez le mettre à jour.
Veuillez utiliser un navigateur internet moderne avec JavaScript activé pour naviguer sur OpenClassrooms.com
Une question ? Pas de panique, on va vous aider !
Bonjour, je suis en train d'apprendre l'environnement MEAN stack et j'ai une question.
J'ai une page d'inscription, qui inscrit l'utilisateur dans MongoDB :
// register.component.ts register(){ this.http.post('http://localhost:3001/register', this.input) .subscribe( ( next: any) => { // TO-DO Success event }, ( error: any) => { // TO-DO Error event }); }
// app.js app.post('/register', function(req, res){ db.collection('users').insertOne({ prenom : req.body.prenom, nom: req.body.nom, email : req.body.email, password : req.body.password }) })
Ca marche plutôt bien, le problème, c'est que pour la connexion, j'utilise l'_id :
// login.component.ts login(id: string){ this.http.get('http://localhost:3001/login/' + id).toPromise().then((data: any) => { this.users = data }) sessionStorage.setItem('id', id) }
// app.js app.get('/login/:id', function(req, res){ db.collection('users').findOne({ email: ObjectId(`${req.params.id}`)}, function(err, user){ if (err) throw err; if (!user) { console.log('User not found') } else if (user) { console.log('Found user: ' + user.prenom) } }) })
Comment faire en sorte que lorsque l'utilisateur s'inscrit, ça renvoie son _id directement, et comme ça je peux le mettre en session :
sessionStorage.setItem('id', id)
EDIT :
Nevermind, j'ai trouvé tout seul :
app.post('/register', function(req, res){ db.collection('users').insertOne({ prenom : req.body.prenom, nom: req.body.nom, email : req.body.email, password : req.body.password, solde : 0, economies : 0 }, function(err, user){ res.json(user.insertedId) }) })
register(){ this.http.post('http://localhost:3001/register', this.input) .subscribe(result => { console.log(result); }) }
-Edité par ToinouPHP 15 mai 2022 à 13:15:16
Vous pouvez rédiger votre message en Markdown ou en HTML uniquement.