angular - 用户注册时从 MongoDB 获取数据

我正在学习 MEAN 堆栈环境,我有一个问题。

我有一个注册页面,在 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
        })
         
    })

它工作得很好,问题是对于连接,我使用_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)
            }
        })
    })

如何确保当用户注册时,它直接返回他的_id,这样我可以让他进入会话:

sessionStorage.setItem('id', id)

回答1

db.collection.insertOne() 函数返回插入的文档,参见https://www.mongodb.com/docs/manual/reference/method/db.collection.insertOne/。这意味着您可以为您的 insertOne() 函数执行回调或异步/等待(无论您喜欢哪个),然后使用 Express 函数 res.json() 返回 _id。然后,在您的前端,您将获得放入 res.json() 的任何内容作为响应。快乐编码! :)

相似文章

随机推荐

最新文章