server.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import * as debugStuff from 'debug'
  2. const debug = debugStuff.debug('dbApiServer')
  3. debug('Starting the dbApiServer')
  4. const express = require('express')
  5. debug(' - Loaded express')
  6. const bodyParser = require('body-parser')
  7. debug(' - Loaded bodyParser')
  8. const http = require('http')
  9. debug(' - Loaded http')
  10. // const oauthserver = require('oauth2-server')
  11. const mongoose = require('mongoose')
  12. mongoose.Promise = Promise
  13. debug(' - Loaded mongoose')
  14. /** Create the express app */
  15. const app = express()
  16. debug('Created app')
  17. /** Bind the http server to express */
  18. const server = http.createServer(app)
  19. debug('Created server')
  20. /** MongoDB middleware */
  21. const dbName = 'AutoMateDB'
  22. const connectionString = `mongodb://localhost:27017/${dbName}`
  23. /** Connect the middleware to the server */
  24. mongoose.connect(connectionString)
  25. debug('Connected DB')
  26. function welcomeRouter (req, res) {
  27. res.status(200)
  28. res.json({ message: 'Welcome to the MongoDB API!' })
  29. }
  30. function errorRouter (req, res) {
  31. res.status(404)
  32. res.send()
  33. }
  34. debug('Defined default routers')
  35. app.use(bodyParser.json())
  36. app.use(bodyParser.urlencoded({ extended: true }))
  37. /** Load the submodules */
  38. import RESTControllerVersioned from './core/RESTControllerVersioned'
  39. import RESTController from './core/RESTController'
  40. import { Model, Job } from './routeGenModel'
  41. const JobController = new RESTController(Job)
  42. const ModelController = new RESTControllerVersioned(Model, '_id', { jobs: JobController })
  43. const modelRouter = ModelController.route()
  44. app.get('/', welcomeRouter)
  45. app.use('/model', modelRouter)
  46. app.use(/.*/, errorRouter)
  47. debug('Configured app')
  48. const port = process.env.PORT || 4100
  49. server.listen(port)
  50. debug('Started server on port %s', port)