我使用基于ApolloError (或派生机制)的简单错误处理机制从我的GraphQL服务器抛出错误。例如:
throw new AuthenticationError("Token not present in the request");在这种情况下,客户端将收到如下内容:
{
"errors": [
{
"message": "Token not present in the request",
...在将响应返回给客户端之前,我想以某种方式拦截这些错误,以便将它们翻译成用户选择的语言。
我该怎么做呢?
发布于 2020-09-02 14:34:57
查看这里,您可以向ApolloServer构造函数提供formatError方法。
const server = new ApolloServer({
typeDefs,
resolvers,
formatError: (err) => {
if (err.message.includes("xyz")) {
return new Error('Internal server error');
}
return err;
},
});使用
err.originalError进行类型检查
formatError: (err) => {
if (err.originalError instanceof AuthenticationError) {
return new Error('Internal server error');
}
return err;
},https://stackoverflow.com/questions/63707728
复制相似问题