code snippets graphQL

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.

About the author

Vithal Reddy

Vithal Reddy is a seasoned technology professional with expertise in Full Stack Web development, Micro services and Scaling infrastructure on Cloud.
More at vithalreddy.com