Как получить ответ от сервера nodejs - PullRequest
0 голосов
/ 06 мая 2020

В моем приложении я хочу получить ответ от сервера nodejs. Если я ввожу уже зарегистрированный почтовый идентификатор, я хочу получить сообщение «Пользователь уже существует» в браузере console.log в register.component.ts. Как это сделать? Много раз пытался, но не мог найти. Пожалуйста, помогите.

пользователь. js: // сервер

    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"

     }
   )
 }
...