2018-12-10 15:50:35 +00:00
|
|
|
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)
|
|
|
|
|
2018-12-17 16:34:32 +00:00
|
|
|
app.prepare().then(() => {
|
|
|
|
const server = express()
|
2018-12-10 15:50:35 +00:00
|
|
|
|
2018-12-17 16:34:32 +00:00
|
|
|
server.use(
|
|
|
|
'/graphql',
|
|
|
|
graphqlHTTP({
|
2018-12-10 15:50:35 +00:00
|
|
|
schema: graphqlSchema,
|
|
|
|
graphiql: false,
|
|
|
|
rootValue: rootValue
|
|
|
|
})
|
2018-12-17 16:34:32 +00:00
|
|
|
)
|
2018-12-10 15:50:35 +00:00
|
|
|
|
2018-12-17 16:34:32 +00:00
|
|
|
server.get('*', (req, res) => {
|
|
|
|
return handle(req, res)
|
|
|
|
})
|
|
|
|
|
|
|
|
server.listen(port, err => {
|
|
|
|
if (err) throw err
|
|
|
|
console.log(`> Ready on http://localhost:${port}`)
|
2018-12-10 15:50:35 +00:00
|
|
|
})
|
2018-12-17 16:34:32 +00:00
|
|
|
})
|