2016-09-14 189 views
1

我試圖運行與graphql Express服務器,我收到以下錯誤:GraphQL與快遞錯誤:Query.example字段類型必須是輸出類型,但得到:[對象的對象]

Error: Query.example field type must be Output Type but got: [object Object].

express-

app.use('/graphql', graphqlHTTP(req => ({ 
schema, 
pretty: true 
}))); 

架構看起來像:在路線graphql使用

export default new GraphQLSchema({ 
query: new GraphQLObjectType({ 
    name: 'Query', 
    fields: queries 
}) 
}); 

查詢只有一個查詢從這裏進口:

import { 
GraphQLList, 
GraphQLID, 
GraphQLNonNull 
} from 'graphql'; 

import exampleScheme from '../models/schemes/example'; 
import {example as exampleData} from '../models/jsons' 

export default { 
type: exampleScheme, 
resolve (root, params, options) { 
    return exampleData; 
} 
}; 

的架構(exampleScheme)和數據(exampleScheme)的另一個項目工作,所以我認爲他們不是問題。

任何想法? '輸出類型'是什麼意思?

回答

2

如果

export default { 
type: exampleScheme, 
resolve (root, params, options) { 
    return exampleData; 
} 
}; 

是您的疑問,那麼你聽錯了, 查詢的領域,因此,在您的示例查詢,應該找這樣的:

export default { 
helloString: { 
    type: GraphQLString, 
    resolve (root, params, options) { 
     return "Hello World!"; 
    } 
} 
... <Next query> 
}; 

無論如何,錯誤的是'type'不是有效的GraphQLType。 那麼查詢將看起來像這樣

query { 
    testString 
} 

將導致:

{ 
    testString: "Hello World!" 
} 

如果意思是,exampleScheme一些其他的對象, 請確保您使用創建它:

new GraphQLObjectType({ .... Options }); 

希望它有幫助! :)

+0

感謝HagaiCo,因爲我從另一個項目導入了這些方案,exmaple scheme是'GraphQLSchema'而不是'GraphQLObjectType'。 – alonp99

相關問題