import * as debugStuff from 'debug' const debug = debugStuff.debug('dbApiServer') debug('Starting the dbApiServer') const express = require('express') debug(' - Loaded express') const bodyParser = require('body-parser') debug(' - Loaded bodyParser') const http = require('http') debug(' - Loaded http') // const oauthserver = require('oauth2-server') const mongoose = require('mongoose') mongoose.Promise = Promise debug(' - Loaded mongoose') /** Create the express app */ const app = express() debug('Created app') /** Bind the http server to express */ const server = http.createServer(app) debug('Created server') /** MongoDB middleware */ const dbName = 'AutoMateDB' const connectionString = `mongodb://localhost:27017/${dbName}` /** Connect the middleware to the server */ mongoose.connect(connectionString) debug('Connected DB') function welcomeRouter (req, res) { res.status(200) res.json({ message: 'Welcome to the MongoDB API!' }) } function errorRouter (req, res) { res.status(404) res.send() } debug('Defined default routers') app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: true })) /** Load the submodules */ import RESTControllerVersioned from './core/RESTControllerVersioned' import RESTController from './core/RESTController' import { Model, Job } from './routeGenModel' const JobController = new RESTController(Job) const ModelController = new RESTControllerVersioned(Model, '_id', { jobs: JobController }) const modelRouter = ModelController.route() app.get('/', welcomeRouter) app.use('/model', modelRouter) app.use(/.*/, errorRouter) debug('Configured app') const port = process.env.PORT || 4100 server.listen(port) debug('Started server on port %s', port)