我正在使用 GraphQL 并尝试在解析器层中获取请求和响应对象。目前,我正在使用 express-graphql。我遵循了 apollo-server 的参考资料并尝试应用相同的
https://github.com/apollographql/apollo-server/issues/420 和 https://graphql.org/learn/execution/
但是,在解析器层中,我得到了不匹配订单的值。参数 obj 具有我们需要获取数据的输入,args 具有请求和响应,上下文具有字段节点、路径、模式等,并且 info 显示为未定义。
- 我不确定 express-graphql 是否遵循不同的顺序,或者 GraphQLHttp 是否以不同的顺序将参数发送到解析器,以及使用 obj 参数的正确方法。
- 如何在解析器层中设置标题
代码:
index.js // imports rootSchema.js and resolver.js => rootSchema buit using buildSchema
app.use("/api", (request, response)=>{
return graphqlhttp({
schema: rootSchema,
rootValue : rootResolver,
graphiql : appConfig.graphiQlEnabled,
context : {
request: {request, response},
test: 'Example context value'
}
})(request, response);
});
//resolver.js
const rootResolver = {
login: async (obj, args, context, info) => {
console.log("Obj: ", obj);
console.log("Args: ", args);
console.log("Context: ", context);
console.log("Info: ", info);
return "Amen!";
//return await loginService.auth(credentials, context);
},
}