请求对象根据访问与快递-graphql
http://graphql.org/graphql-js/authentication-and-express-middleware/
要使用中间件来GraphQL解析器,只需使用中间件就像你会与一个正常的快速应用。然后,请求对象可作为任何解析器中的第二个参数。
然而,当我跑我的解析器
module.exports = {
Query: {
books(root, args, context) {
return books;
}
}
};
第二个参数是我的查询参数。第三个参数,但是,除非我重写context
config属性为expressGraphql
确实是我的请求对象。
我的全配置是
app.use(
"/graphql",
expressGraphql({
schema,
graphiql: true
})
);
是文档错了,还是我错误地做一些事情?
哦,男人非常感谢你 - 这实际上我还有其他几点困惑。所以我通过'graphql-tools'传递我的解析器,https://github.com/arackaf/booklist/blob/feature/add-graphQL/schema.js#L16你是说我还有另一条路线,它没有我的模式作为字符串,并会影响我的解析器参数?所以如果有人走这条路线,什么是根的价值?我仍然可以指定它,docs提到了“root resolver”,但我并没有完全理解这意味着什么 - 我认为它是针对静态全局帮手或其他东西:-P –
我相当确信**只有**时间当你在'rootValue'中定义你的解析器时,你会看到第一个参数放下。据我所知,'rootValue'是'context'可用之前的剩余物 - 现在它的使用受到限制...除非你选择使用'buildSchema',在这种情况下,它是唯一可以通过解析器传递的方法。 [Example here](http://graphql.org/graphql-js/running-an-express-graphql-server/)。如果你已经使用'graphql-tools',你可能不需要搞乱rootValue。 –
用几个示例链接编辑答案。 –