2019-04-03 00:25:12 +02:00
|
|
|
const express = require('express')
|
|
|
|
const consola = require('consola')
|
2019-04-23 15:45:52 +02:00
|
|
|
const morgan = require('morgan')
|
2019-04-05 00:10:19 +02:00
|
|
|
const bodyParser = require('body-parser')
|
2019-04-26 23:14:43 +02:00
|
|
|
const cookieParser = require('cookie-parser')
|
2019-04-29 00:27:29 +02:00
|
|
|
const path = require('path')
|
2019-04-03 00:25:12 +02:00
|
|
|
const { Nuxt, Builder } = require('nuxt')
|
|
|
|
const app = express()
|
|
|
|
const cors = require('cors')
|
2019-05-30 12:12:51 +02:00
|
|
|
const notifier = require('./notifier')
|
|
|
|
|
2019-04-05 00:10:19 +02:00
|
|
|
const corsConfig = {
|
|
|
|
allowedHeaders: ['Authorization'],
|
|
|
|
exposeHeaders: ['Authorization']
|
|
|
|
}
|
2019-04-03 00:25:12 +02:00
|
|
|
|
2019-05-30 12:12:51 +02:00
|
|
|
|
2019-04-03 00:25:12 +02:00
|
|
|
// Import and Set Nuxt.js options
|
|
|
|
const config = require('../nuxt.config.js')
|
|
|
|
config.dev = !(process.env.NODE_ENV === 'production')
|
|
|
|
|
|
|
|
async function start() {
|
|
|
|
// Init Nuxt.js
|
|
|
|
const nuxt = new Nuxt(config)
|
|
|
|
|
|
|
|
const { host, port } = nuxt.options.server
|
|
|
|
|
|
|
|
// Build only in dev mode
|
|
|
|
if (config.dev) {
|
|
|
|
const builder = new Builder(nuxt)
|
|
|
|
await builder.build()
|
|
|
|
} else {
|
|
|
|
await nuxt.ready()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Give nuxt middleware to express
|
2019-04-05 00:10:19 +02:00
|
|
|
app.use(cors(corsConfig))
|
2019-04-23 15:45:52 +02:00
|
|
|
app.use(morgan('dev'))
|
2019-04-29 00:27:29 +02:00
|
|
|
app.use('/media/', express.static(path.join(__dirname, '..', 'uploads')))
|
2019-04-26 23:14:43 +02:00
|
|
|
app.use(cookieParser())
|
2019-04-05 00:10:19 +02:00
|
|
|
app.use(bodyParser.urlencoded({ extended: false }))
|
|
|
|
app.use(bodyParser.json())
|
2019-04-03 00:25:12 +02:00
|
|
|
app.use(nuxt.render)
|
|
|
|
|
|
|
|
// Listen the server
|
|
|
|
app.listen(port, host)
|
|
|
|
consola.ready({
|
|
|
|
message: `Server listening on http://${host}:${port}`,
|
|
|
|
badge: true
|
|
|
|
})
|
|
|
|
}
|
|
|
|
start()
|
2019-05-30 12:12:51 +02:00
|
|
|
notifier.startLoop(20)
|