const express = require('express') const nuxt = require('nuxt') const { Nuxt, Builder } = nuxt const app = express() const host = process.env.HOST || '127.0.0.1' const port = process.env.PORT || 8080 // uncaughtException 避免程序崩溃 process.on('uncaughtException', function (err) { console.error(err) try { let killTimer = setTimeout(function () { process.exit(1) }, 10000) killTimer.unref() server.close() } catch (e) { console.error('Fail to close server safely. ', e.stack) } }) app.set('port', port) // Import and Set Nuxt.js options const config = require('./nuxt.config.js') config.dev = !(process.env.NODE_ENV === 'production') // Init Nuxt.js const server = new Nuxt(config) // Build only in dev mode if (config.dev) { const builder = new Builder(server) builder.build() } // Give nuxt middleware to express app.use(server.render) // Listen the server app.listen(port, host) console.log('Server listening on ' + host + ':' + port) // eslint-disable-line no-console