⚠️
Warning
This is the documentation for the old GraphQL Yoga v3.
We recommend
upgrading to the latest 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-yoga
Replace 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
,context
and other parameters can be passed dynamically per HTTP request.context
parameter of GraphQL Yoga can be a factory function butschema
cannot. So you should use @envelop/use-lazy-loaded-schema for the same behavior.