我目前正在将我的Apollo Server升级到TypeScript项目中的v4版本。我正在使用Express中间件来运行它。
现在让我困扰的是错误处理。
我想在将错误消息发送给客户端之前翻译它。为此,我需要访问包含用户语言的查询上下文。
在v3中,我过去会使用formatResponse
来实现这一点。
现在在v4中,formatResponse
已不复存在,并且根据迁移指南,我必须使用一个带有willSendResponse
的插件,如下所示:
const responseFormattingPlugin: ApolloServerPlugin<MyContextType> = {
async requestDidStart() {
return {
async willSendResponse(requestContext) {
const {response, contextValue, errors} = requestContext;
// Format reponse here. Unfortunately, errors is readonly
}
};
}
};
因此,我尝试使用formatError函数,但不幸的是,在这里我无法访问请求上下文,因此我不能做我想做的事情。
谢谢您的帮助!
throws
影响最小的最佳方法。感谢您的建议! - Tdy