这个错误通常是因为 Apollo 解析器无法找到对应的数据源或数据源结果为 undefined。可以通过检查数据源配置和返回结果来解决这个问题。
以下是一些可能出现问题的代码示例:
const server = new ApolloServer({
typeDefs,
resolvers,
dataSources: () => ({
userAPI: new UserAPI()
})
});
上面的代码中,如果 UserAPI 的构造函数有参数未传递,那么就会返回 undefined,导致解析器链出现问题。应该确保数据源的构造函数能够正确地接收所有必要的参数。
class UserAPI extends DataSource {
async getUser(id: string) {
const user = await User.findById(id);
if (!user) {
return null;
}
return user;
}
}
上面的代码中,如果找不到对应的用户,则 getUser() 方法将返回 null,而不是 undefined。这会导致解析器链出现问题。应该确保在数据源的返回值中不返回 undefined,而是使用 null 或其他合适的值来表示无数据情况。
上一篇:Apollo解析器链返回null