在保持对请求对象的访问权限的同时,如何对express-graphql解析程序进行依赖注入?

时间:2018-08-03 21:11:48

标签: node.js graphql express-graphql

我在我的nodejs应用中使用express-graphql。

为了从解析器访问数据库,我创建了一个名为08-03 14:16:59.728 11039-13685/com.example.ortel.tagnet 1: [1] 08-03 14:16:59.728 11039-13685/com.example.ortel.tagnet 2: [] 的对象(该对象处理名为ProjectHandler的数据库中的表),并将其注入到解析器中通过在创建projects实例时更改context,就像这样:

express-graphql

问题是,这取代了默认上下文作为请求对象的表示,从而阻止了我访问会话信息。

问题是,我需要会话信息和项目处理程序。我该怎么办?

1 个答案:

答案 0 :(得分:1)

graphqlHTTP函数返回一个明确的middleware,因此为了传递带有context对象的自定义request,我们必须将该函数包装在一起middleware,然后激活graphqlHTTP middleware

下面的这段代码应该可以工作(没有尝试过):

 app.use('/graphql', (request, response) => {
     return graphqlHTTP({
        schema,
        graphiql: true,
        context: {
            projectsHandler,
            request
        }
     })(request, response);
 })