graphQL - 类型必须是输出类型
graphQL - type must be Output Type
我正在尝试使用 graffiti
以及 express 和 mongoose 来设置 graphQL 路由。
但是我收到以下错误:
Error: myColl.myField field type must be Output Type but got: undefined.
at invariant (/Users/nha/.../node_modules/graphql/jsutils/invariant.js:20:11)
at /Users/nha/.../node_modules/graphql/type/definition.js:299:39
在猫鼬模式中,类型是:type : Schema.Types.ObjectId
。是否应该更改为其他内容?
我应该注意版本是:
"@risingstack/graffiti": "^1.0.2"
"@risingstack/graffiti-mongoose": "^3.1.1"
"mongoose": "~3.6.20"
原来我没有导入我引用的另一个模型。我有以下代码:
myField : {
type : Schema.Types.ObjectId,
ref : 'myRef'
}
而且我没有将 'myRef'
导入到使用 graphQL 的猫鼬模型列表中。确实很简单;虽然错误消息可能会得到改善(这是什么输出类型?什么是未定义的?)。
错误
Error: ... field type must be Output Type but got: undefined.
意思是,您的 GraphQLFieldConfig 有问题。
GraphQLFieldConfig 需要类型字段。如果缺少此字段或类型引用错误(未定义等),则会出现此错误。
class GraphQLObjectType {
constructor(config: GraphQLObjectTypeConfig)
}
type GraphQLObjectTypeConfig = {
name: string;
interfaces?: GraphQLInterfacesThunk | Array<GraphQLInterfaceType>;
fields: GraphQLFieldConfigMapThunk | GraphQLFieldConfigMap;
isTypeOf?: (value: any, info?: GraphQLResolveInfo) => boolean;
description?: ?string
}
type GraphQLInterfacesThunk = () => Array<GraphQLInterfaceType>;
type GraphQLFieldConfigMapThunk = () => GraphQLFieldConfigMap;
...
type GraphQLFieldConfig = {
type: GraphQLOutputType;
args?: GraphQLFieldConfigArgumentMap;
resolve?: GraphQLFieldResolveFn;
deprecationReason?: string;
description?: ?string;
}
我正在尝试使用 graffiti
以及 express 和 mongoose 来设置 graphQL 路由。
但是我收到以下错误:
Error: myColl.myField field type must be Output Type but got: undefined.
at invariant (/Users/nha/.../node_modules/graphql/jsutils/invariant.js:20:11)
at /Users/nha/.../node_modules/graphql/type/definition.js:299:39
在猫鼬模式中,类型是:type : Schema.Types.ObjectId
。是否应该更改为其他内容?
我应该注意版本是:
"@risingstack/graffiti": "^1.0.2"
"@risingstack/graffiti-mongoose": "^3.1.1"
"mongoose": "~3.6.20"
原来我没有导入我引用的另一个模型。我有以下代码:
myField : {
type : Schema.Types.ObjectId,
ref : 'myRef'
}
而且我没有将 'myRef'
导入到使用 graphQL 的猫鼬模型列表中。确实很简单;虽然错误消息可能会得到改善(这是什么输出类型?什么是未定义的?)。
错误
Error: ... field type must be Output Type but got: undefined.
意思是,您的 GraphQLFieldConfig 有问题。
GraphQLFieldConfig 需要类型字段。如果缺少此字段或类型引用错误(未定义等),则会出现此错误。
class GraphQLObjectType {
constructor(config: GraphQLObjectTypeConfig)
}
type GraphQLObjectTypeConfig = {
name: string;
interfaces?: GraphQLInterfacesThunk | Array<GraphQLInterfaceType>;
fields: GraphQLFieldConfigMapThunk | GraphQLFieldConfigMap;
isTypeOf?: (value: any, info?: GraphQLResolveInfo) => boolean;
description?: ?string
}
type GraphQLInterfacesThunk = () => Array<GraphQLInterfaceType>;
type GraphQLFieldConfigMapThunk = () => GraphQLFieldConfigMap;
...
type GraphQLFieldConfig = {
type: GraphQLOutputType;
args?: GraphQLFieldConfigArgumentMap;
resolve?: GraphQLFieldResolveFn;
deprecationReason?: string;
description?: ?string;
}