Я использую express-graphql в своем приложении nodejs.
Чтобы получить доступ к базе данных от преобразователей, я создал объект с именем ProjectHandler (который обрабатывает таблицу в базе данных с именем projects), и я ввожу его в преобразователи, изменяя context при создании экземпляра express-graphql, например так:
app.use('/graphql', graphqlHTTP({
schema,
graphiql: true,
context: {projectsHandler}
}))
проблема в том, что это заменяет контекст по умолчанию, который является представлением объекта запроса, не позволяя мне получить доступ к информации о сеансе.
Дело в том, что мне нужна и информация о сеансе, и обработчик проекта. Как мне это сделать?





Функция graphqlHTTP возвращает экспресс-middleware, поэтому для передачи пользовательского context с объектом request в нем нам придется обернуть эту функцию нашим собственным middleware и активировать graphqlHTTPmiddleware.
этот код ниже должен работать (еще не пробовал):
app.use('/graphql', (request, response) => {
return graphqlHTTP({
schema,
graphiql: true,
context: {
projectsHandler,
request
}
})(request, response);
})
Да :) На самом деле я решил это 2 часа назад именно так! (последние родительские элементы - вызов функции - на самом деле не нужны, достаточно просто аргумента options в качестве функции, он вызывается каждый запрос с помощью express-graphql)