我正在用express编写graphql项目。我已经这样定义了User对象:
const User = new GraphQLObjectType({
name: 'User',
fields: () => ({
name: {
type: new GraphQLNonNull(GraphQLString),
},
friends: {
type: HistoricalPerformanceEvaluation,
async resolve(user) {
return db.users.findFriendsFor(user.id);
},
},
}),
});
但是,我想使用graphql语法创建模式并按如下方式定义它:
type User {
name: String
friends: [User]!
}
我现在应该在哪里编写解析器?我不使用阿波罗。
答案 0 :(得分:0)
您可以使用“ graphql-tools”中的addResolveFunctionsToSchema函数来创建带有解析器函数的架构。
import { addResolveFunctionsToSchema } from 'graphql-tools';
答案 1 :(得分:0)
使用参考graphql-js库,您可以将根对象传递给GraphQL执行。在该对象上查找所有顶级查询和变异,并在从该对象返回的对象上查找嵌套的查询字段,等等。
graphql-js主页上的示例包含此对象:
// The root provides a resolver function for each API endpoint
var root = {
hello: () => {
return 'Hello world!';
},
};
然后将该对象作为参数传递给graphql入口点。