const express = require('express') const bodyParser = require('body-parser') const sockjs = require('sockjs') const http = require('http') const mongoose = require('mongoose') /** Load the submodules */ import project from './project/route' /** Create the express app */ const app = express() /** MongoDB middleware */ const dbName = 'movieDB' const connectionString = `mongodb://localhost:27017/${dbName}` /** Sockjs middleware */ const sockjsOpts = {sockjs_url: 'http://cdn.jsdelivr.net/sockjs/1.0.1/sockjs.min.js'} const sockjsServer = sockjs.createServer(sockjsOpts) sockjsServer.on('connection', function (conn) { conn.on('data', function (message) { conn.write(message) }) }) /** Bind the http server to express */ const server = http.createServer(app) sockjsServer.installHandlers(server, {prefix: '/echo'}) mongoose.connect(connectionString) function welcomeRouter (req, res) { res.json({ message: 'Welcome to the AutoMate db API!' }) } function errorRouter (req, res) { res.status(404) res.send({ message: 'Unknown route.' }) } app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: true })) app.get(/^\/db\/?$/, welcomeRouter) app.get(/^\/db(\/\w+)?(\/\w+)?\/?$/, [project.get]) app.post(/^\/db(\/\w+)?(\/\w+)?\/?$/, [project.post]) app.put(/^\/db(\/\w+)?(\/\w+)?\/?$/, [project.put]) app.delete(/^\/db(\/\w+)?(\/\w+)?\/?$/, [project.delete]) app.use(/.*/, errorRouter) /* app.get('/', function (req, res) { res.sendFile(`${__dirname}/index.html`) }) */ server.listen(process.env.PORT || 4000)