⚠️
This is the documentation for the old GraphQL Yoga version 3. We recommend upgrading to the latest GraphQL Yoga version 5.
Migrate to GraphQL Yoga v5
Migrate to GraphQL Yoga v5
Migration from Express GraphQL
Installation
You can start with installing graphql-yoga package.
Terminal
yarn add graphql-yogaReplace Express GraphQL's middleware
You should replace Express GraphQL's middleware with GraphQL Yoga's;
const express = require('express');
- const { graphqlHTTP } = require('express-graphql');
+ const { createYoga } = require('graphql-yoga');
const { schema } = require('./schema');
const app = express();
-app.use('/graphql', graphqlHTTP(req => ({
- schema: schema,
- context: {
- token: req.headers.authorization
- },
- graphiql: true,
-})));
+const yoga = createYoga({
+ schema,
+ context: (req) => ({ // Context factory gets called for every request
+ myToken: req.headers.get('authorization'),
+ }),
+ graphiql: true,
+})
+
+app.use('/graphql', yoga);
app.listen(4000);
console.log('Running a GraphQL API server at http://localhost:4000/graphql');
schema,contextand other parameters can be passed dynamically per HTTP request.contextparameter of GraphQL Yoga can be a factory function butschemacannot. So you should use @envelop/use-lazy-loaded-schema (opens in a new tab) for the same behavior.