How To Access the request object inside a GraphQL resolver Function (Apollo-Server-Express)

If you’re working with GraphQL (a query language for your API), and you’re using apollo-server-express, You may notice unlike express-graphql, request object will not be available in context, if it’s not defined inĀ apollo-sever-express middleware, but don’t worry, if want request object available in context, just use following quick hack, not really and you’re done.

normalĀ apollo-server-express middleware:

app.use('/graphql', bodyParser.json(), graphqlExpress({ yourSchema }));

apollo-server-express middleware with request object as context:

consider, you want request user as context:

app.use('/graphql', bodyParser.json(), graphqlExpress(req => ({
  YourSchema,
  context: { user: req.user }
}));

Here, we are using es6 arrow functions and passing request object in that function.so that it will be available to pass in context of graphql query.

Now, you can pass context in your resolver functions to access request object inside resolver function.

See also  Use Global Node Modules in Normal Nodejs App/Script

Leave a Comment