NestJS句柄状态代码500和响应主体
我知道NestJS会将所有与200-299不同的状态代码作为错误处理,我已经创建了自己的NestJS句柄状态代码500和响应主体,nestjs,Nestjs,我知道NestJS会将所有与200-299不同的状态代码作为错误处理,我已经创建了自己的HttpExceptionFilter实现ExceptionFilter来处理错误 这就是我目前的情况。我的一个提供者正在向我发送状态代码为500的响应,以防值出错(不是真正的服务器错误),但在响应中会出现消息和描述 是否有一种方法可以捕获内联异常,而不将响应传输到我的异常过滤器 const options = { requestBody, headers: { Aut
HttpExceptionFilter实现ExceptionFilter
来处理错误
这就是我目前的情况。我的一个提供者正在向我发送状态代码为500的响应,以防值出错(不是真正的服务器错误),但在响应中会出现消息和描述
是否有一种方法可以捕获内联
异常,而不将响应传输到我的异常过滤器
const options = {
requestBody,
headers: {
Authorization: `Bearer 12345`,
'Content-Type': 'text/plain',
},
data: requestBody,
};
const endpoint = http://myclientendpoint.com;
try {
const response = await this.httpService
.post(endpoint, requestBody, options)
.toPromise();
if (
response == null ||
response == undefined ||
response.data == null ||
response.data == undefined
) {
return null;
}
console.log(response.data);
return await response.data;
} catch (error) {
console.log('>>> THIS IS TRIGGERED WITHOUT THE RESPONSE BODY');
console.log(error);
return null;
}
可以添加一个
try catch
并使用以下内容获取正文内容:error.response.data
例如:
try {
const response = await this.httpService
.post(endpoint, requestBody, options)
.toPromise();
if (
response == null ||
response == undefined ||
response.data == null ||
response.data == undefined
) {
return null;
}
console.log(response.data);
return await response.data;
} catch (error) {
if (error.response.status === 500) {
console.log('> TRYING TO HANDLED 500 status code');
console.log(error.response.data);
return error.response.data;
}
if (error.response.status === 403) {
console.log('> TRYING TO HANDLED 403 status code');
console.log(error.response.data);
return error.response.data;
}
if (error.response.status === 505) {
console.log('> TRYING TO HANDLED 505 status code');
console.log(error.response.data);
return error.response.data;
}
console.log(error);
return null;
}