【发布时间】:2021-05-02 01:26:57
【问题描述】:
实际上,GQL 验证错误可以正常工作,但是当我抛出带有 nestjs 异常 的 nestjs 错误时,我没有在基本数组或内部对象上获得正确的状态代码或确切错误实际错误在数组的部门中找到。并且在浏览器网络选项卡中始终显示 200 状态,即使nestjs 抛出错误,有任何方法可以捕获由nestjs 引发的错误,并且当捕获错误时浏览器网络选项卡中的正确状态代码?
【问题讨论】:
实际上,GQL 验证错误可以正常工作,但是当我抛出带有 nestjs 异常 的 nestjs 错误时,我没有在基本数组或内部对象上获得正确的状态代码或确切错误实际错误在数组的部门中找到。并且在浏览器网络选项卡中始终显示 200 状态,即使nestjs 抛出错误,有任何方法可以捕获由nestjs 引发的错误,并且当捕获错误时浏览器网络选项卡中的正确状态代码?
【问题讨论】:
Apollo Server 构造函数接受一个formatError 函数,该函数在传递回客户端的每个错误上运行。这可用于屏蔽错误以及日志记录,在 NestJS 中,您可以在 GraphQLModule 中使用此方法,主要存在于 app.module.ts 中
GraphQLModule.forRoot({
....
...
formatError: (error) => {
const graphQLFormattedError = {
message:
error.extensions?.exception?.response?.message || error.message,
code:
error.extensions?.code || "SERVER_ERROR",
name: error.extensions?.exception?.name || error.name,
};
return graphQLFormattedError;
},
}),
【讨论】:
200 但您会收到错误数组。