express - 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;
});
}
我想显示“密码无效!!”,但显示“未经授权”
解决方案
注意返回的对象。
this.errorMessage = error.statusText;
应该
this.errorMessage = error.error.message
推荐阅读
- c++ - 计算中间值的最通用方法
- html - 如何在 Materialise CSS 中创建可选列表
- laravel - 带有 LARAVEL Lighthouse PHP 的 GraphQL - 如何隐藏属性?
- c# - 为什么 c# 和 python 中的浮点数不能正确计算
- jmeter - Jmeter:想要在频繁的时间间隔中捕获随机令牌
- java - spring boot main方法中的NullPointerException
- spring - Spring Data 多个 jpa-named-queries.properties 文件
- javascript - 如何使用标准浏览器 API 计算相对 URL
- apache-nifi - FlowFile 内容与 FlowFile 属性的最佳实践
- angular - Angular Route Param 值未与 ngClass 三元绑定