-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
109 lines (93 loc) · 3.72 KB
/
server.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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
const express = require("express");
const body_parser = require("body-parser");
const PORT = process.env.PORT || 4000;
const colors = require("colors");
// const IP = process.env.IP;
const app = express();
const methodOverride = require("method-override");
const mongoose = require("mongoose");
const Campgound = require("./models/campground");
const Comment = require("./models/comment");
const SeedDB = require("./seeds");
const passport = require("passport");
const LocalStrategy = require("passport-local");
const User = require("./models/user");
const flash = require("connect-flash");
//requiring routes
const campgroundRoutes = require("./routes/campgrounds");
const commentRoutes = require("./routes/comments");
const authRoutes = require("./routes/auth");
// ===================================
// MONGOOSE CONFIGURATION
// ===================================
//mongoose.connect("mongodb://localhost/yelp_camp_for_restful_api_deployingToHeroku",{ useNewUrlParser: true ,useUnifiedTopology: true });
var url =
process.env.DATABASEURL ||
"mongodb://localhost/yelp_camp_for_restful_api_deployingToHeroku";
// mongoose.connect("mongodb+srv://saeedhassan:<PASSWORDHERE>@cluster0-ctusi.mongodb.net/yelpcamp?retryWrites=true&w=majority",{ useNewUrlParser: true ,useUnifiedTopology: true })
mongoose
.connect(url, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log(colors.bgGreen("server is connected successfully"));
})
.catch((err) => {
console.log(colors.red("Error occurs in Mongoose :===>Connection", err));
});
mongoose.connection.once("open", (err) => {
if (err) {
console.log("Error in MONGOOSE connection", err);
} else {
console.log(colors.bgBlue("mongoose is connected to nodejs successfully"));
}
});
//mongodb+srv://saeedhassan:<PASSWORDHERE>@cluster0-ctusi.mongodb.net/test?retryWrites=true&w=majority
// ===================================
// SEEDING
// ===================================
//SeedDB() // we will call this when we remove all campgrounds from database otherwise we dont
// ===================================
// EXPRESS-SESSION
// ===================================
app.use(
require("express-session")({
secret: "Hello Iam Saeed Hassan Solangi From Dadu, Sindh , Pakistan",
resave: false,
saveUninitialized: false,
})
);
// ===================================
// PASSPORT CONFIGURATION
// ===================================
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate())); //User.authenticate(comesFrompassportLocalMongooseplugn)
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
// ===================================
// APP CONFIGURATION
// ===================================
app.use(express.static(__dirname + "/public"));
app.set("view engine", "ejs");
app.use(body_parser.urlencoded({ extended: true }));
app.use(methodOverride("_method"));
// ===================================
// CONNECT-FLASH CONFIGURATION
// ===================================
app.use(flash());
app.use((req, res, next) => {
res.locals.currentUser = req.user; // by res.locals , this will add currentUser to all the templates
res.locals.error = req.flash("error");
res.locals.success = req.flash("success");
res.locals.info = req.flash("info");
res.locals.primary = req.flash("primary");
next();
});
// ===================================
// MANAGING REQUIRING ROUTES
// ===================================
app.use("/campgrounds", campgroundRoutes);
app.use("/campgrounds/:id/comments", commentRoutes);
app.use("/", authRoutes);
app.listen(PORT, () =>
console.log(colors.bgMagenta(`SERVER IS RUNNING ON THE PORT ${PORT}`))
);