const next = require('next')
const http = require('http')
const port = parseInt(process.env.PORT, 10) || 3000
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
process.on('SIGTERM', () => process.exit(0))
process.on('SIGINT', () => process.exit(0))
app.prepare().then(() => {
const handler = app.getRequestHandler()
const server = http.createServer(async (req, res) => {
try {
await handler(req, res)
} catch (err) {
console.error(err)
res.statusCode = 500
res.end('Internal Server Error')
}
})
server.listen(port, (err) => {
if (err) {
console.error('Failed to start server', err)
process.exit(1)
}
console.log('Listening on port', port)
})
})