我正在尝试使用 GraphQLError 自定义消息传递。
我想用 GraphQL 错误处理的用例很少:
当用户名和密码不匹配时,我想返回自定义用户名和密码不匹配的消息。
当用户输入无效的电子邮件时,我想返回自定义输入的电子邮件无效的消息。
以及其他一些用例。
我创建了一个 ValidateError.js 文件来使用 GraphQLError 处理函数:
const { GraphQLError } = require('graphql');
module.exports = class ValidationError extends GraphQLError {
constructor(errors) {
super('The request is invalid');
var err = errors.reduce((result, error) => {
if (Object.prototype.hasOwnProperty.call(result, error.key)) {
result[error.key].push(error.message);
} else {
result[error.key] = [error.message];
}
return result;
}, {});
}
}
这是我的应用程序索引文件 app.js 的代码:
app.use('/graphql', graphqlExpress(req => ({
schema,
context: {
user: req.user
},
formatError(err) {
return {
message: err.message,
code: err.originalError && err.originalError.code,
locations: err.locations,
path: err.path
};
}
})));
我的问题是如何使用这个函数来获取 graphQLError
格式错误
提前致谢。