Skip to Content
SWR 2.0 is out! Read more →
remotegraphql-yogamigrationmigration-from-express-graphql

Migration from Express GraphQL

Installation

You can start by installing graphql-yoga package.

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.