Thomas
Thomas

Reputation: 226

req always undefined in Apollo Server context

i have a problem with the apollo-server context. I wrote the following code:

const { ApolloServer } = require("apollo-server-azure-functions");
const { typeDefs, resolvers } = require('../graphql_schema/schema');

const server = new ApolloServer({
    typeDefs,
    resolvers, 
    context: ({ req }) => {
      console.log(req);
      return {
        req: req
      }
    },
    introspection: false,
    playground: true,
  });

  module.exports = server.createHandler();

But the req variable is always undefined. Does anybody have a idea?

I´m using following versions of apollo

"apollo-server": "^2.4.2",
"apollo-server-azure-functions": "^2.4.2",

Thank you very much.

Upvotes: 7

Views: 2821

Answers (2)

Thomas
Thomas

Reputation: 226

I have a solution for my problem.

context: ( {req} ) =>... 

Don't deconstruct req, it should be:

context: (req) => ...

const { ApolloServer } = require("apollo-server-azure-functions");
const { typeDefs, resolvers } = require('../graphql_schema/schema');

const server = new ApolloServer({
    typeDefs,
    resolvers, 
    context: (req) => {
      return {
        accesstoken: GetAccessToken(req.request)
      }
    },
    introspection: false,
    playground: true,
  });

  const GetAccessToken = function (request){
    const token = (request.headers.authorization || '').replace('BEARER ', '');
    return token;
  }

  module.exports = server.createHandler();

Upvotes: 10

Mevlana Ertugrul
Mevlana Ertugrul

Reputation: 1

Need to define the req parameter on a top

const { ApolloServer } = require("apollo-server-azure-functions");
const { typeDefs, resolvers } = require('../graphql_schema/schema');

const server = new ApolloServer({
    typeDefs,
    resolvers,
    req,
    context: ({ req }) => {
      console.log(req);
      return {
        req: req
      }
    },
    introspection: false,
    playground: true,
  });

  module.exports = server.createHandler();

Upvotes: -1

Related Questions