JOE
2018-10-29 c0530eefd1595109f5f096a0ac0e6fe910d30623
commit | author | age
b09781 1 const createError = require('http-errors');
J 2 const express = require('express');
3 const path = require('path');
4 const cookieParser = require('cookie-parser');
5 const logger = require('morgan');
7b5b16 6 const scssMiddleware = require('node-sass-middleware');
b09781 7 const mustacheExpress = require('mustache-express');
J 8
9 const config = require('./config/config.js');
10 const indexRouter = require('./routes/index');
7b5b16 11 const apiRouter = require('./routes/api/index');
b09781 12
J 13 // Set up mongoose connection
14 const mongoose = require('mongoose');
15 let dev_db_url = 'mongodb://'+config.db.host+':'+config.db.port+'/'+config.db.name;
16 const mongoDB = process.env.MONGODB_URI || dev_db_url;
17 mongoose.connect(mongoDB, {
18   useCreateIndex: true,
19   useNewUrlParser: true
20 });
21 mongoose.Promise = global.Promise;
22 const db = mongoose.connection;
23 db.on('error', console.error.bind(console, 'MongoDB connection error:'));
24
5ea03c 25 const app = express();
b09781 26
J 27 // view engine setup
28 app.engine('html', mustacheExpress());
29
30 app.set('view engine', 'html');
31 app.set('views', path.join(__dirname, 'views'));
32 app.use(logger('dev'));
33 app.use(express.json());
34 app.use(express.urlencoded({ extended: false }));
35 app.use(cookieParser());
7b5b16 36 app.use(scssMiddleware({
b09781 37   src: path.join(__dirname, 'public'),
J 38   dest: path.join(__dirname, 'public'),
7b5b16 39   indentedSyntax: false, // true = .sass and false = .scss
J 40   sourceMap: true,
41   debug: true
b09781 42 }));
J 43 app.use(express.static(path.join(__dirname, 'public')));
44
45 //add router
7b5b16 46 app.use('/', require('./routes/index'));
J 47 app.use('/api', require('./routes/api/index'));
b09781 48
J 49 // catch 404 and forward to error handler
50 app.use(function(req, res, next) {
51   const error = {
52     "result": 404,
53     "result_msg": "Not found or null"
54   }
55   res.status(error.result).send(error);
56 });
57
58 // error handler
59 app.use(function(err, req, res, next) {
60   // set locals, only providing error in development
61   res.locals.message = err.message;
62   res.locals.error = req.app.get('env') === 'development' ? err : {};
63
64   // render the error page
65   res.status(err.status || 500);
66   res.render('error.html');
67 });
68
69 module.exports = app;