• v2
  • Migration
  • Express GraphQL
💡
This is the documentation for the old GraphQL Yoga version 2. We recommend upgrading to the latest GraphQL Yoga version 3.

Get started with GraphQL Yoga v3

Migration from Express GraphQL

Installation

You can start by installing graphql-yoga package.

yarn add @graphql-yoga/node

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 { createServer } = require('@graphql-yoga/node')
const { schema } = require('./schema')
 
const app = express()
 
- app.use('/graphql', graphqlHTTP(req => ({
-   schema: schema,
-   context: {
-     token: req.headers.authorization
-   },
-   graphiql: true
- })))
 
+ const yoga = createServer({
+   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 but schema cannot. So you should use @envelop/use-lazy-loaded-schema for the same behavior.

Last updated on November 15, 2022