在Apollo-Server的配置中添加一个错误格式化程序来清晰地显示错误。以下是一个示例:
const { ApolloServer, gql } = require('apollo-server');
// 定义类型
const typeDefs = gql`
type Query {
hello: String
error: String
}
`;
// 定义解析器
const resolvers = {
Query: {
hello: () => 'Hello world!',
error: () => {
throw new Error('This is an error message!');
},
},
};
// 将错误格式化为对象
const formatError = error => ({
message: error.message,
code: error.extensions.code,
locations: error.locations,
path: error.path,
});
// 创建服务器实例
const server = new ApolloServer({
typeDefs,
resolvers,
formatError, // 添加错误格式化程序
});
// 启动服务器
server.listen().then(({ url }) => {
console.log(`� Server ready at ${url}`);
});
在上面的示例中,我们定义了一个新的函数formatError()
,它接受一个错误作为参数并将其格式化为一个具有message
、code
、locations
和path
属性的对象。然后我们将该函数作为ApolloServer
配置的一部分传递给服务器实例,并在发生错误时使用它来格式化错误。这将使错误消息和其他相关信息以清晰的方式显示在控制台上,方便调试和排查问题。