如何从Node.js服务器获取响应

时间:2020-05-06 14:17:30

标签: node.js mongodb express angular8

在我的应用程序中,我想从nodejs服务器获得响应。如果输入已经注册的邮件ID,我想在register.component.ts中的浏览器console.log上收到“用户已存在”消息。怎么做 很多次尝试,但无法找到。请任何人帮助。

user.js:// server

    users.post('/register', (req, res) => {
    const today = new Date()
    const userData = {
        first_name: req.body.first_name,
        last_name: req.body.last_name,
        email: req.body.email,
        password: req.body.password,
        created: today
    }

    User.findOne({
            email: req.body.email
        })
        //TODO bcrypt
        .then(user => {

            if (!user) {
                User.create(userData)
                    .then(user => {
                        const payload = {
                            _id: user._id,
                            first_name: user.first_name,
                            last_name: user.last_name,
                            email: user.email
                        }
                        let token = jwt.sign(payload, process.env.SECRET_KEY, {
                            expiresIn: 1440
                        })
                        res.json({ token: token })
                    })
                    .catch(err => {
                        res.send('error: ' + err)
                    })
            } else {
                res.json({ error: 'User already exists' })
            }
        })
        .catch(err => {
            res.send('error: ' + err)
        })
})

authentication.service.ts:

  public register(user: TokenPayload): Observable<any> {
    const base = this.http.post(`/users/register`, user)

    const request = base.pipe(
      map((data: TokenResponse) => {
        if (data.token) {
          this.saveToken(data.token)
        }
        return data;
      })
    )

    return request;
  }

register.component.ts:

register() {
   this.auth.register(this.credentials).subscribe(
     () => {
       this.router.navigateByUrl('/profile')
     },
     err => {
       console.error(err); // how to get  error message like "User already exits"

     }
   )
 }

0 个答案:

没有答案
相关问题