server.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. let express = require('express')
  2. let app = express()
  3. let sockets = require('./lib/sockets')
  4. let sequelize = require('./models').sequelize
  5. let config = require('./config/server.js')
  6. //Middle-ware
  7. let bodyParser = require('body-parser')
  8. let morgan = require('morgan')
  9. let expressSession = require('express-session')
  10. let session = expressSession({
  11. secret: config.sessionSecret,
  12. resave: true,
  13. saveUninitialized: true
  14. })
  15. app.use(bodyParser.json())
  16. app.use(bodyParser.urlencoded({ extended: true }))
  17. app.use(session)
  18. if(process.env.NODE_ENV !== 'test' && process.env.NODE_ENV !== 'production') {
  19. app.use(morgan('dev'))
  20. }
  21. if(process.env.NODE_ENV === 'production') {
  22. app.set('trust proxy', 1);
  23. session.cookie.secure = true
  24. }
  25. app.use('/api/v1/user', require('./routes/user'))
  26. app.use('/api/v1/admin_token', require('./routes/admin_token'))
  27. app.use('/api/v1/category', require('./routes/category'))
  28. app.use('/api/v1/thread', require('./routes/thread'))
  29. app.use('/api/v1/notification', require('./routes/notification'))
  30. app.use('/api/v1/post', require('./routes/post'))
  31. app.use('/api/v1/settings', require('./routes/settings'))
  32. sequelize
  33. .sync({ force: true })
  34. .then(() => {
  35. let server = app.listen(config.port, () => {
  36. console.log('Listening on ' + config.port)
  37. app.locals.appStarted = true
  38. app.emit('appStarted')
  39. })
  40. sockets.init(app, server, session)
  41. })
  42. .catch((err) => {
  43. console.log(err)
  44. })
  45. module.exports = app