index.js 1.79 KB
/**
 * Created by Tommy Huang on 18/03/21.
 */
console.log(`Running on ${process.env.NODE_ENV} mode`)
const path = require('path')
const express = require('express')
const config = require('config-lite')({
  config_basedir: __dirname,
  config_dir: 'config'
})
const logger = require('morgan')
const cookieParser = require('cookie-parser')
const bodyParser = require('body-parser')
// const session = require('express-session')
// const RedisStore = require('connect-redis')(session)
const upload  = require('multer')().single('file')
const router = require('./routes')

const { Nuxt, Builder } = require('nuxt')
const app = express()
const isProduction = (process.env.NODE_ENV === 'production')
const host = config.host || '0.0.0.0'
const port = config.port || 3572

app.set('port', port)
app.use(logger(isProduction ? 'common' : 'dev'));
// 文件上传中间件
app.use(upload)
app.use(bodyParser.urlencoded({ extended: false ,limit : "5mb" }))
app.use(bodyParser.json({limit: '5mb'}))
app.use(cookieParser(config.session.secret))
// 加载 session 设置
// app.use(session(Object.assign({}, config.session, {
//   store: new RedisStore(config.session.redisStore)
// })))

//connect database
const sequlize = require('./models/db')
// 加载路由
app.use('/netiou', router)

// Import and Set Nuxt.js options
let nuxtConfig = require('./nuxt.config.js')
nuxtConfig.dev = !(process.env.NODE_ENV === 'production')

async function start() {
  // Init Nuxt.js
  const nuxt = new Nuxt(nuxtConfig)
  // Build only in dev mode
  if (nuxtConfig.dev) {
    const builder = new Builder(nuxt)
    await builder.build()
  }
  // Give nuxt middleware to express
  app.use(nuxt.render)

  // Listen the server
  app.listen(port, host)
  console.log('Server listening on http://' + host + ':' + port) // eslint-disable-line no-console
}
start()