代码之家  ›  专栏  ›  技术社区  ›  Tom Klino

如何在保持对请求对象的访问的同时进行依赖注入以表示graphql解析器?

  •  1
  • Tom Klino  · 技术社区  · 7 年前

    我正在nodejs应用程序中使用express graphql。

    为了从解析器访问数据库,我创建了一个名为 ProjectHandler (它处理数据库中名为 projects )我通过改变 context 当创建 express-graphql 例如:

    app.use('/graphql', graphqlHTTP({
      schema,
      graphiql: true,
      context: {projectsHandler}
    }))
    

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Daniel Jakobsen Hallel    7 年前

    graphqlHTTP 函数返回表达式 middleware 所以为了传递一个习俗 context request 对象中,我们必须用自己的函数包装该函数 中间件 ,并激活 图形QLHttp 中间件

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

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