2015-10-19 25 views
6

expressとmongooseを使用してgraffitiを使用してgraphQLルートを設定しようとしています。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" 
+0

エラーがスローコードは何ですか? –

答えて

2

は私が参照され、別のモデルをインポートしませんでしたが判明します。私は、次のコードを持っていた:

myField : { 
    type : Schema.Types.ObjectId, 
    ref : 'myRef' 
} 

をそして私はgraphQLを使用するためのマングースモデルのリストに'myRef'をインポートしていませんでした。確かに単純です。エラーメッセージはおそらく改善される可能性があります(この出力タイプは何ですか?未定義とは何ですか?)。

0

エラー

Error: ... field type must be Output Type but got: undefined. 

平均は、あなたがGraphQLFieldConfigに問題があります。

GraphQLFieldConfigには、タイプフィールドが必要です。このフィールドが見つからないか、型refが不正(未定義など)の場合、このエラーが表示されます。

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; 
} 

http://graphql.org/graphql-js/type/#graphqlobjecttyp

関連する問題