如何从 apollo 服务器发送错误消息
Posted
技术标签:
【中文标题】如何从 apollo 服务器发送错误消息【英文标题】:How to send an error message from the apollo- server 【发布时间】:2020-03-27 10:21:55 【问题描述】:这是我的代码
在 apollo 客户端中,我使用 useMutation。
阿波罗客户
const [addTodo, loading, error, data ] = useMutation(gql);
阿波罗服务器
Mutation:
signUp: async (_, formSignUp, models: User , res ) =>
try
const user = new User(formSignUp);
await user.save();
const token = await user.generateAuthToken();
res.cookie("darkAmasia", token,
httpOnly: true
);
return "string";
catch (error)
?????????
我应该在 catch 中写什么?发送消息status:400,error:true
in useMutation 错误。
听说throw new ApolloError
是用来做这些的,但是不知道怎么弄。
【问题讨论】:
【参考方案1】:阅读更多关于错误处理的信息here
您可以创建自己的 Error 类来扩展 ApolloError 并将状态作为默认属性传递。
Mutation:
signUp: async (_, formSignUp, models: User , res ) =>
try
const user = new User(formSignUp);
await user.save();
const token = await user.generateAuthToken();
res.cookie("darkAmasia", token,
httpOnly: true
);
return "string";
catch (error)
throw new ApolloError("Something went wrong", "BAD_INPUT",status:400,error:true);
【讨论】:
为什么我在控制台中收到错误消息?如何使这种情况不发生?Uncaught (in promise) Error: GraphQL error: Backend request failed
使用 return 而不是 throw 尝试
不,这也没有帮助。以上是关于如何从 apollo 服务器发送错误消息的主要内容,如果未能解决你的问题,请参考以下文章
Socket Send(2) - 如何从服务器向客户端发送错误消息
向源发送请求时出错。 Apollo Engine 如何配置 apollo engine origins?
如何通过azure设备配置服务从azure功能向iot设备发送自定义错误消息?