我正在nodejs应用程序中使用express graphql。
为了从解析器访问数据库,我创建了一个名为 ProjectHandler (它处理数据库中名为 projects )我通过改变 context 当创建 express-graphql 例如:
ProjectHandler
projects
context
express-graphql
app.use('/graphql', graphqlHTTP({ schema, graphiql: true, context: {projectsHandler} }))
问题是,这将取代默认上下文作为请求对象的表示,从而阻止我访问会话信息。
问题是,我需要会话信息和项目处理程序。我该怎么做?
graphqlHTTP 函数返回表达式 middleware 所以为了传递一个习俗 context 与 request 对象中,我们必须用自己的函数包装该函数 中间件 ,并激活 图形QLHttp 中间件
graphqlHTTP
middleware
request
中间件
图形QLHttp
下面的代码应该可以工作(还没有尝试过):
app.use('/graphql', (request, response) => { return graphqlHTTP({ schema, graphiql: true, context: { projectsHandler, request } })(request, response); })