我在我的nodejs应用中使用了express-graphql。
为了从解析器访问数据库,我创建了一个名为ProjectHandler
的对象(它处理数据库中一个名为projects
的表),并在创建express-graphql
实例时通过更改context
将其注入解析器,如下所示:
app.use('/graphql', graphqlHTTP({
schema,
graphiql: true,
context: {projectsHandler}
}))
问题是,这替换了默认上下文,使其不再是请求对象的表示,从而阻止我访问会话信息。
问题是,我需要会话信息和项目处理程序。我该怎么做?
发布于 2018-08-04 18:49:12
graphqlHTTP
函数返回一个快速middleware
,因此为了传递包含request
对象的自定义context
,我们必须将该函数与我们自己的middleware
包装在一起,并激活graphqlHTTP
middleware
下面的代码应该可以工作(还没试过):
app.use('/graphql', (request, response) => {
return graphqlHTTP({
schema,
graphiql: true,
context: {
projectsHandler,
request
}
})(request, response);
})
https://stackoverflow.com/questions/51680119
复制相似问题