Как разобрать сообщение об ошибке, отправленное с сервера в Angular Component? - PullRequest
0 голосов
/ 07 сентября 2018

Вот мой код бэкэнда

if (err)
            {
              res.status(400).send({ error: "invalid credentials", data: null, message: "Invalid Credentials" });

            }
            else
            {

                res.status(200).send({ data: user });
            }

Вот мой угловой код

 let obj = { "name": name, "email": email, "password": password };

  this.http.post("https://localhost:3000/register",obj, {responseType: 'json'})
    .subscribe(
        data => {
            console.log("POST Request is successful ", data);
        },
        error => {

            console.log(error); 

        }
    );

Я могу записать объект ошибки. Мне нужно получить точное сообщение об ошибке, которое передается из бэкэнда.

Примерно так

 console.log(error.message); 

Я попробовал, но получаю ошибку. Как правильно проанализировать HttperrorResponse в Angular JS?

Ответы [ 3 ]

0 голосов
/ 07 сентября 2018

Просто проверьте, имеет ли ошибка тип экземпляра HttpErrorResponse и проанализируйте

this.http.post("https://localhost:3000/register",obj, {responseType: 'json'})
        .subscribe(
            data => {
                console.log("POST Request is successful ", data);
            },
            error => {
              if (error instanceof HttpErrorResponse) {
                console.log('message', error.message);
              }
            }
        );
0 голосов
/ 07 сентября 2018

Просто используйте console.log(error.error.message) для регистрации фактического сообщения об ошибке.

См .: HttpErrorResponse

0 голосов
/ 07 сентября 2018

Это пример из моего кода, который отлично работает:

this.protocolListService.versionWorkspaceId
      .subscribe(res => {
        if(!!res){
          this.projectService.getGeoJsonFromWorkspaceId(res)
          .subscribe(
            res => {
              if(!!res){
                this.editElements = JSON.parse(res.body.pgjGeojson);
              }
            },
            err => {
              console.log("Error > " + err);
              this.editElements = new Workspace();
            },
            () => console.log("Unspecified error")
          );
        }
      });

Я считаю, что вы должны изменить error с err вместо

...