-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
86 lines (65 loc) · 2.05 KB
/
app.js
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
// =========//
// Setup! //
// =========//
var reseedDatabase = false;
var express = require('express'),
bodyParser = require('body-parser'),
flash = require('connect-flash'),
mongoose = require('mongoose'),
methodOverride = require('method-override'),
passport = require('passport'),
LocalStrategy = require('passport-local');
var app = express();
var User = require('./models/user'),
indexRoutes = require('./routes/index'),
campgroundRoutes = require('./routes/campgrounds'),
commentRoutes = require('./routes/comments'),
seedDB = require('./seeds');
// Misc Setups
app.use(express.static('public'));
app.use(methodOverride('_method'));
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(flash());
app.set('view engine', 'ejs');
// Backup variables in the event of environment variable issues. See README
var databaseURL = process.env.DATABASEURL || 'mongodb://localhost/yelp_camp';
var sessionSecret = process.env.SESSION_SECRET || 'This is a backup secret';
mongoose.connect(databaseURL);
// Passport Setups
app.use(require('express-session')({
secret: sessionSecret,
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
// Pass information to all pages
app.use(function(req, res, next) {
res.locals.error = req.flash('error');
res.locals.success = req.flash('success');
res.locals.currentUser = req.user;
next();
});
// Seed the database with fresh data
if (reseedDatabase) {
seedDB();
}
// =========//
// Routes! //
// =========//
app.use('/', indexRoutes);
app.use('/campgrounds', campgroundRoutes);
app.use('/campgrounds/:campground_id/comments', commentRoutes);
// ===========//
// Listener! //
// ===========//
app.listen(process.env.PORT, process.env.IP, function() {
var appConsoleMsg = 'YelpCamp server has started: ';
appConsoleMsg += process.env.IP + ':' + process.env.PORT;
console.log(appConsoleMsg);
});