首页 > 解决方案 > IONIC 4 登录得到响应,但无法读取自定义错误消息

问题描述

我在 Express 中为 IONIC 4 创建了一个登录名,登录名有效,但是当密码无效时,我想显示自定义消息。我无法展示它。

这是我在浏览器控制台中得到的响应:

error: Object { message: "Password not valid!", status: "401" }
headers: Object { normalizedNames: Map(0), lazyUpdate: null, lazyInit: lazyInit()}
message: "Http failure response for http://localhost:3000/login: 401 Unauthorized"
name: "HttpErrorResponse"
ok: false
status: 401
statusText: "Unauthorized"
url: "http://localhost:3000/login"

我在快递中的登录代码:

const  findUserByEmail  = (email, cb) => {
    return  mc.query('SELECT * FROM user_login WHERE email = ?',[email], (err, row) => {
            cb(err, row); console.log(err);
    });
}

router.post('/login', (req, res) => {
    const email = req.body.email;
    const form_password = req.body.password;
    //console.log(form_password );
    findUserByEmail(email, (err, user) => {
        console.log(user);
        console.log("Test1");
        if (err) return res.status(500).send({ "message": 'Server error!!', "status": '500' });
        console.log("Test2");
        if (!user[0]) return res.status(404).send({ "message": 'User not found!', "status": '404' });
        console.log("Test3");
        console.log(user);
        const result = bcrypt.compareSync(form_password, user[0].password);
        if (!result) return res.status(401).send({ "message": 'Password not valid!!', "status": '401' });
        const expiresIn = 24 * 60 * 60;
        const accessToken = jwt.sign({ id: user[0].id }, SECRET_KEY, {
            expiresIn: expiresIn
        });
        res.status(200).send({ "user": user, "access_token": accessToken, "expires_in": expiresIn, "message": 'Success!!', "status": '200' });
    });
});

我在 IONIC 4 中的登录代码:

  login(form){
    this.authService.login(form.value).subscribe(result => {
        this.router.navigateByUrl(`dashboard`);
      },
      error => {    
        this.showError = true;
        console.log(error);
        this.errorMessage = error.statusText;
      });
  }

我想显示“密码无效!!”,但显示“未经授权”

标签: expressionic-frameworkionic4

解决方案


注意返回的对象。

this.errorMessage = error.statusText;

应该

this.errorMessage = error.error.message

推荐阅读