我试图用graphql运行快速服务器,我收到以下错误:
错误:Query.example字段类型必须是输出类型,但得到:[object Object]。
在路线中使用的express-graphql:
app.use('/graphql', graphqlHTTP(req => ({
schema,
pretty: true
})));
架构看起来像这样:
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)正在处理另一个项目,所以我认为它们不是问题所在。
有什么想法吗?什么是'输出类型'意思?
答案 0 :(得分:2)
如果
docker-compose.yml
是你的查询,然后你弄错了, 查询的字段,因此在您的示例中的查询应该如下所示:
@Test
public void test_inAppMsgEmptyResponse() {
given().
contentType("application/json").
when().
get("inapp/messages.json").
then().assertThat().
statusCode(HttpStatus.SC_OK).
assertThat().
body("pollInterval", equalTo(defaultPollInterval)).
assertThat().
body("notifications", hasSize(0));
}
无论如何,错误是'type'不是有效的GraphQLType。 然后查询将如下所示
export default {
type: exampleScheme,
resolve (root, params, options) {
return exampleData;
}
};
将导致:
export default {
helloString: {
type: GraphQLString,
resolve (root, params, options) {
return "Hello World!";
}
}
... <Next query>
};
如果含义是exampleScheme是其他对象, 请确保您使用以下方式创建它:
query {
testString
}
希望它有所帮助! :)