哪问大神解释下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; }
}; 

就好了

发表评论

电子邮件地址不会被公开。 必填项已用*标注