Я отправляю HTTP-запрос от angular на узел / экспресс API.Как получить реальное сообщение об ошибке, которое я отправляю с узла / экспресс-API
Я хорошо обрабатываю свои исключения, когда они добавляются в API, но в тот момент, когда я пытаюсь прочитать сообщение в Angular, я получаю тольконазвание типа ошибки, которую я выбрасываю.Например, если я выбрасываю 409, ошибка, полученная angular, просто «Конфликт» и не содержит отправляемых данных.Пожалуйста, посмотрите на мой код ниже.
Я отправляю свой запрос, как показано ниже
register(user: UserAccount) {
return this.http
.post(`${config.apiUrl}/users/register`, user)
.pipe(
map((res: HttpResponse<Response>) => {
return res;
}))
.pipe(catchError(err => this.errorHandler.handleError(err)));
}
Моя ошибка дескриптора такая, как показано ниже:
handleError(error: HttpErrorResponse) {
console.log(error);
if (error) {
let errMessage = '';
try {
errMessage = error.message;
} catch (error) {
errMessage = error.statusText;
}
return throwError(errMessage || error || 'Server error');
}
return throwError(error.error || error || 'Server error');
}
Вот так я кидаюмоя ошибка, возникающая в моем Node / Express API
registerUser (req, res) {
debug(chalk.blue(`*** insert user`))
userRepo
.create(req.body)
.then(user => {
debug(chalk.green(`*** Insert User ok!`))
res.status(200).json({
status: true,
error: null,
user: user
})
})
.catch(err => {
debug(chalk.red(`*** insertUser error: ${util.inspect(err)}`))
if (err['type'] && err['type'] === '409') {
res.status(409).json({
status: false,
error: err['message'],
user: null
})
} else {
res.status(400).json({
status: false,
error: err,
user: null
})
}
})
}
Я хочу получить объект json с информацией об ошибке, но все, что я получаю при доступе к элементу ошибки, дляНапример, в случае повышения 409 я получаю только «Конфликт»