哪问大神解释下GraphQL 里的mutation 查询 not found问题
参考http://taobaofed.org/blog/201…
例子里的 GraphQL 教程
遇到 GraphQL schema里的定义的 mutation 查询 返回值无效
使用Postman 模拟post请求,body数据为mutation RootMutationType{updateCount},返回值为Not Found
mutation 查询的node后台执行语句为
graphqlschema, ctx.request.body.thenresult => { ctx.body=JSON.stringifyresult;
}
result 结果值为{ data: { updateCount: 1 } }
貌似将其赋值给ctx.body是无效的。
控制台的请求日志为
–> POST /graphql/test 404 53ms –
query RootQueryType { count } 查询则不存在这个问题
是不是2种查询机制 存在差异
graphq版本”^0.7.1″
koa版本”^2.0.0-alpha.7″
koa-router版本”^7.0.1″
代码如下
//schema.js
import { GraphQLObjectType, GraphQLSchema, GraphQLInt
} from graphql;
let count = 0;
let schema = new GraphQLSchema{ query: new GraphQLObjectType{ name: RootQueryType, fields: { count: { type: GraphQLInt, description: 数量!, resolve: function { return count; } } } }, mutation: new GraphQLObjectType{ name: RootMutationType, fields: { updateCount: { type: GraphQLInt, description: 更新数量, resolve: function { count += 1; return count; } } } }
};
export default schema;
//路由
//graphqlTest.js
import router from koa-router;
import schema from ../model/schema;
import { graphql } from graphql;
var graphqlTest=router; graphqlTest.post/graphql/test, function ctx, next { graphqlschema, ctx.request.body.thenresult => { ctx.body=JSON.stringifyresult; }
};
export default graphqlTest;
graphqlTest.post/graphql/test, function ctx, next { graphqlschema, ctx.request.body.thenresult => { ctx.body=JSON.stringifyresult; }
};
将这个改成
graphqlTest.post/graphql/test, async function ctx, next { await graphqlschema, ctx.request.body.thenresult => { ctx.body=JSON.stringifyresult; }
};
就好了
发表评论