У меня есть эти отношения между пользователем и его членством.Поле членства - это связь между пользователем и несколькими членами.
const MembershipType = new GraphQLObjectType({
name: 'Membership',
interfaces: [nodeInterface],
fields: {
id: globalIdField(),
user: {
type: new GraphQLNonNull(UserType),
resolve(parent, args, ctx: Context) {
return ctx.userById.load(parent.user_id);
},
},
role: {
type: new GraphQLNonNull(GraphQLString),
},
team: {
type: GraphQLString,
},
createdAt: {
type: new GraphQLNonNull(GraphQLString),
resolve(parent) {
return parent.created_at;
},
},
updatedAt: {
type: new GraphQLNonNull(GraphQLString),
resolve(parent) {
return parent.updated_at;
},
},
},
});
export default MembershipType;
const UserType = new GraphQLObjectType({
name: 'User',
interfaces: [nodeInterface],
fields: {
id: globalIdField(),
firstName: {
type: GraphQLString,
resolve(parent) {
return parent.first_name;
},
},
lastName: {
type: GraphQLString,
resolve(parent) {
return parent.last_name;
},
},
email: {
type: GraphQLString,
resolve(parent) {
return parent.email;
},
},
memberships: {
type: new GraphQLList(MembershipType),
resolve(parent, args, ctx: Content) {
return ctx.membershipsByUserId.load(parent.id);
},
},
membershipsCount: {
type: new GraphQLNonNull(GraphQLInt),
resolve(parent, args, ctx: Context) {
return ctx.userMembershipsCount.load(parent.id);
},
},
},
});
export default UserType;
Проблема здесь в том, что у меня есть эта ошибка, где поле пользователя в MembershipType вызывает ошибку
Blockquote / Users/nizarayari/Arise/arise-auth/node_modules/graphql/jsutils/invariant.js:19 выбросить новую ошибку (сообщение);^ Ошибка: ожидалось, что undefined будет типом GraphQL, обнуляемым.в инварианте (/Users/nizarayari/Arise/arise-auth/node_modules/graphql/jsutils/invariant.js:19:11) в assertNullableType (/ Users / nizarayari / Arise / возникают-auth / node_modules / graphql / тип / определение).js: 261: 51) в новом GraphQLNonNull (/Users/nizarayari/Arise/arise-auth/node_modules/graphql/type/wrappers.js:79:54) в объекте.(/Users/nizarayari/Arise/arise-auth/src/schema/membership/MembershipType.js:25:13) в Module._compile (module.js: 624: 30) в Object.Module._extensions..js (модуль.js: 635: 10) в Module.load (module.js: 545: 32) в tryModuleLoad (module.js: 508: 12) в Function.Module._load (module.js: 500: 3) в Module.require(module.js: 568: 17) в случае необходимости (internal / module.js: 11: 18) в объекте.(/Users/nizarayari/Arise/arise-auth/src/schema/user/UserType.js:19:1) в Module._compile (module.js: 624: 30) в Object.Module._extensions..js (module.js: 635: 10) в Module.load (module.js: 545: 32) в tryModuleLoad (module.js: 508: 12)
Вот мой запрос для пользователя
import UserType from './UserType';
import type Context from '../../Context';
const me = {
type: UserType,
resolve(root: any, args: any, ctx: Context) {
return ctx.user && ctx.userById.load(ctx.user.id);
},
};
export default {
me,
};
Нет запросов на членство, только мутация