💡
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
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