-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathapp.js
More file actions
96 lines (82 loc) · 2.63 KB
/
app.js
File metadata and controls
96 lines (82 loc) · 2.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//Require npm modules
var express = require("express");
var path = require("path");
var logger = require("morgan");
var cookieParser = require("cookie-parser");
var bodyParser = require("body-parser");
var mongoose = require("mongoose");
var passport = require('passport');
var session = require('express-session');
var flash = require('connect-flash');
var favicon = require('serve-favicon');
// custom modules
var dbConfig = require('./database/db.js');
var auth;
if (!process.env.HEROKU_ENV) {
auth = require('./auth.js');
}
var User = require('./models/userModel.js').User;
var Data = require('./models/dataModel.js').Data;
// setup things
mongoose.Promise = require('bluebird');
mongoose.connect(process.env.MONGODB_URI || dbConfig.url);
// Initialize express app
var app = express();
var PORT = process.env.PORT || 3000;
//Passport setup
app.use(session({
secret: process.env.SECRET_KEY || auth.secret,
name: 'TrojanHorse',
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
//Middleware
app.use(logger("dev"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));
app.use(flash());
// configure passport
require('./config/passport')(passport);
app.use(favicon(path.join(__dirname, 'public/images/favicon.ico')));
// this sets up all of the routes
var routes = require('./routes/routes.js');
var authRoutes = require('./routes/auth.js');
var donor = require('./routes/donor.js');
var team = require('./routes/team.js');
var purchase = require('./routes/purchases.js');
var upload = require('./routes/upload.js');
var gallery = require('./routes/gallery.js');
var profile = require('./routes/profile.js');
app.use("/", routes);
app.use("/auth", authRoutes);
app.use("/donor", donor);
app.use("/team", team);
app.use("/purchase", purchase);
app.use("/upload", upload);
app.use('/gallery', gallery);
app.use('/profile', profile);
app.get("/test", function(req, res) {
var url = path.resolve( __dirname + '/test.html');
res.sendFile(url);
});
app.get("/test/JSON", function(req, res) {
console.log("Sending file");
var url = path.resolve(__dirname + '/cad.json');
res.sendFile(url);
});
app.get("/:route", function(req, res) {
var route = req.params.route;
// If requesting a file (which for now means a naive assumption that it contains a '.'), don't serve html
if (route.indexOf('.') > -1) {
res.sendStatus(404);
} else {
var url = path.resolve(__dirname + '/public/index.html');
res.sendFile(url);
}
});
app.listen(PORT, "0.0.0.0");
console.log('Listening on Port', PORT);