node.js - 如何在保持对请求对象的访问的同时对 express-graphql 解析器进行依赖注入?
问题描述
我在我的 nodejs 应用程序中使用 express-graphql。
为了从解析器访问数据库,我创建了一个名为的对象ProjectHandler
(它处理数据库中名为 的表),并通过在创建实例时projects
更改将其注入解析器,如下所示:context
express-graphql
app.use('/graphql', graphqlHTTP({
schema,
graphiql: true,
context: {projectsHandler}
}))
问题是,这将默认上下文替换为请求对象的表示,从而阻止我访问会话信息。
问题是,我需要会话信息和项目处理程序。我怎么做?
解决方案
graphqlHTTP
函数返回一个 expressmiddleware
所以为了传递一个context
包含request
对象的自定义,我们必须用我们自己的来包装这个函数middleware
,并激活graphqlHTTP
middleware
下面的代码应该可以工作(没有尝试过):
app.use('/graphql', (request, response) => {
return graphqlHTTP({
schema,
graphiql: true,
context: {
projectsHandler,
request
}
})(request, response);
})
推荐阅读
- java - 是否可以在运行时使用 Spring Data 中的 MongoRepository 确定字段?
- jquery - 如何不使用“$.parseJSON”对我的数据进行排序
- excel - Range.TextToColumns 使用一次后输出不一致
- javascript - 在 React 中多次调用 hooks
- javascript - 如何使用 JavaScript 在滚动上为 3D 渲染设置动画?
- excel - 在 Excel 中创建按钮以调用 Sharepoint 页面的流行趋势
- android - 从位图转换为uri
- php - 使用 Laravel 使用 json_encode 将单词“booked”及时插入所选对
- android - HTML 表格 - 仅在 Android 设备上获取行之间的空白
- css - 使用 React JS 中的 styled-components,添加条件样式的更首选方式是什么?