我使用graphql,nodejs,express和sequelize(使用mysql)构建了一个小代码,但我还没有找到graphql的魔力。我使用sequelize-cli创建我的模型(使用sequelize model:create等),我会动态生成我的模式和类型:
var types = generateModelTypes([db['User'], db['Acesso']])
var schema = generateSchema({User: db['User'], Acesso: db['Acesso']}, types)
我按照以下方式打开了我的应用程序:
app.use(
'/graphql',
graphqlHTTP({
schema: schema,
graphiql: true
})
)
app.listen(4000, function (){
console.log("Calling app.listen's callback function.");
})
但是我无法使用它发送一个关于graphiql的查询:
curl -X POST -H "Content-Type:application/json" -d '{ "query": "{ users { id } }" }' localhost:4000/graphql
我收到此错误:
{"errors":[{"message":"Expected [object Object] to be a GraphQL schema."}]}
我做错了什么!?
答案 0 :(得分:1)
查看graphql-sequelize-schema-generator
的文档,生成的模式实际上并不是GraphQLSchema的实例,因此您需要执行以下操作:
schema: new GraphQLSchema(schema)