我在TypeScript中有一个nodeJS express服务器应用程序。发生错误时,我想向其中添加一些文本,然后在客户端Angular应用程序中读取它。
NodeJS服务器,表达代码:
import {
Request,
Response
} from 'express';
if (medewerker) {
verifyPassword(medewerker.id, req.body.wachtwoord).then(isVerifiedPassword => {
if (isVerifiedPassword) {
.......
} else {
throw new Error('Wachtwoord niet juist ingevoerd');
}
}).catch(error => {
console.log(error);
res.status(401).json('I want to show this text: ' + error);
})
}
客户代码:
this.httpClient.put(this.url + 'medewerker/login', {
'email': authData.userId,
'wachtwoord': authData.password
}, {
headers: this.headertjes,
withCredentials: true,
observe: 'response',
responseType: 'json'
})
.subscribe((data1: HttpResponse < MedewerkerTypeId > ) => {
if (data1 != null) {
.....
}
}, ((error: HttpErrorResponse) => {
console.log(error.statusText) //here I want to grep and show my text.
}));
但是我得到一个错误:未定义的消息。
我尝试了所有选项,但只有error.status
和error.message
这样的默认属性有效。但是没有我想要的自定义消息。
也许有人可以帮助我吗?
答案 0 :(得分:0)
可以使用ErrorResponse
属性访问error
的正文。
像这样更改代码:
this.httpClient.put(this.url + 'medewerker/login', {
'email': authData.userId,
'wachtwoord': authData.password
}, {
headers: this.headertjes,
withCredentials: true,
observe: 'response',
responseType: 'json'
})
.subscribe((data1: HttpResponse < MedewerkerTypeId > ) => {
if (data1 != null) {
.....
}
}, ((error: HttpErrorResponse) => {
console.log(error.error) //here error contains the text
}));