GraphQL连接

时间:2018-05-24 02:01:52

标签: javascript graphql graphql-js relay express-graphql

我与用户及其会员资格有这种关系。成员资格字段是用户与多个成员资格之间的连接。



float(i**Fraction(1,3)) = 3.9999999




这里的问题是我有这个错误,其中在MembershipType中的用户字段导致错误

  

块引用   /Users/nizarayari/Arise/arise-auth/node_modules/graphql/jsutils/invariant.js:19       抛出新的错误(消息);             ^   错误:预期未定义为GraphQL可空类型。       不变(/Users/nizarayari/Arise/arise-auth/node_modules/graphql/jsutils/invariant.js:19:11)       在assertNullableType(/Users/nizarayari/Arise/arise-auth/node_modules/graphql/type/definition.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)       at Object.Module._extensions..js(module.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)       at require(internal / module.js:11:18)       在对象。 (/Users/nizarayari/Arise/arise-auth/src/schema/user/UserType.js:19:1)       在Module._compile(module.js:624:30)       at Object.Module._extensions..js(module.js:635:10)       在Module.load(module.js:545:32)       在tryModuleLoad(module.js:508:12)

这是我对用户的查询



if float(round(i**Fraction(1,3),2)).is_integer() == True:




对会员资格的查询只是变异

2 个答案:

答案 0 :(得分:1)

两个字段都在同一个js文件中吗?您在成员资格和UserType上有export default,看起来像是相同的js文件。

您只能在每个文件的一个字段中使用export default

一旦你将两个字段分开,因为成员资格取决于UserType,诀窍是使用一个返回成员资格中的字段对象的函数

const MembershipType = new GraphQLObjectType({
  name: 'Membership',
  interfaces: [nodeInterface],
  fields: () => ({
    id: globalIdField(),
    ...
  })
});

而不是:

const MembershipType = new GraphQLObjectType({
  name: 'Membership',
  interfaces: [nodeInterface],
  fields: {
    id: globalIdField(),
    ...
  }
});

答案 1 :(得分:0)

您可能需要在文件中将UserType移到MembershipType之上。

let Foo = {
  bar: Bar
}

let Bar = 'bar'

console.log(Foo.bar) // undefined

Foo = {
  bar: Bar
}

console.log(Foo.bar) // 'bar'

https://repl.it/@tcoughlin3/CumbersomeClassicRat