mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
a996fba09c
* Added a new example with relay modern and a graphql server with express. * removed .graphqlconfig file from with-relay-modern-server-express example
35 lines
978 B
JavaScript
35 lines
978 B
JavaScript
const express = require('express')
|
|
const graphqlHTTP = require('express-graphql')
|
|
const next = require('next')
|
|
const path = require('path')
|
|
const fs = require('fs')
|
|
const { buildSchema } = require('graphql')
|
|
const rootValue = require('./rootValue')
|
|
const port = parseInt(process.env.PORT, 10) || 3000
|
|
const dev = process.env.NODE_ENV !== 'production'
|
|
const app = next({ dev })
|
|
const handle = app.getRequestHandler()
|
|
const schemaPath = path.join(__dirname, '/schema.graphql')
|
|
const schemaContent = fs.readFileSync(schemaPath).toString()
|
|
const graphqlSchema = buildSchema(schemaContent)
|
|
|
|
app.prepare()
|
|
.then(() => {
|
|
const server = express()
|
|
|
|
server.use('/graphql', graphqlHTTP({
|
|
schema: graphqlSchema,
|
|
graphiql: false,
|
|
rootValue: rootValue
|
|
}))
|
|
|
|
server.get('*', (req, res) => {
|
|
return handle(req, res)
|
|
})
|
|
|
|
server.listen(port, (err) => {
|
|
if (err) throw err
|
|
console.log(`> Ready on http://localhost:${port}`)
|
|
})
|
|
})
|