-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.js
143 lines (126 loc) · 4.58 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
// "C:\Program Files\MongoDB\Server\4.4\bin\mongo.exe"
//////////////////chaeck use of async and await used in update of profile
//////////delet se phle confirm krne ka
//for keeping the cloud api secret
//https://www.npmjs.com/package/dotenv
require('dotenv').config();
var express = require("express");
var app = express();
var bodyParser = require('body-parser');
const mongoose = require("mongoose");
var passport = require("passport");
const session = require('express-session');
const cookieParser = require('cookie-parser');
var LocalStrategy= require("passport-local");
var path= require("path");
var passportLocalMongoose = require('passport-local-mongoose');
var methodOverride = require("method-override");
var flash = require('connect-flash');
const {check, validationResult} = require('express-validator');
const bcrypt = require('bcryptjs');
var Company = require("./models/company");
var Seeker = require("./models/seeker");
var Job = require("./models/job");
var User = require("./models/user");
var Posts =require("./models/posts");
var FeedBack =require("./models/feedback");
var Quiz = require("./models/quiz");
var Question = require("./models/question");
// var Quiz2 = require("./models/quiz1");
// var Quiz3 = require("./models/quiz1");
var Submission = require("./models/submission");
// var Submission2 = require("./models/submission");
// var Submission3 = require("./models/submission");
var middleware = require("./middleware/index.js");
var Companyroutes = require("./routes/company");
var Seekerroutes = require("./routes/seeker");
var Jobroutes = require("./routes/job");
var Postsroutes = require("./routes/posts");
var Indexroutes = require("./routes/index");
var quizroutes = require("./routes/quiz");
var adminroutes = require("./routes/admin");
var job_part2 = require("./routes/job_part2");
var pass_reset = require("./routes/pass_reset");
var profile = require("./routes/profile");
var project = require("./routes/project");
var imagesroute = require("./routes/images");
mongoose.connect("mongodb://localhost:27017/"+process.env.DATABASE_NAME, { useNewUrlParser: true ,useUnifiedTopology: true});
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.set("view engine", "ejs");
app.use(express.static(path.join(__dirname+"/public")));
app.use(methodOverride("_method"));
app.use(flash());
app.locals.moment= require("moment");
app.use(cookieParser('secret'));
// ////////passport-authenticate
app.use(session({
secret: 'secret',
maxAge:3600000,
resave: true,
saveUninitialized: true,
// resave :false,
// saveUninitialized: false
}));
// const checkAuthenticated = function (req, res, next) {
// if (req.isAuthenticated()) {
// res.set('Cache-Control', 'no-cache, private, no-store, must-revalidate, post-check=0, pre-check=0');
// return next();
// } else {
// res.redirect('/');
// }
// }
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy({ usernameField: 'username' }, (username, password, done) => {
//------------ User Matching ------------//
User.findOne({
username: username
}).then(user => {
if (!user) {
return done(null, false, { message: 'This email ID is not registered' });
}
//------------ Password Matching ------------//
bcrypt.compare(password, user.password, (err, isMatch) => {
if (err) throw err;
if (isMatch) {
return done(null, user);
} else {
return done(null, false, { message: 'Password incorrect! Please try again.' });
}
});
});
}));
passport.serializeUser(function (user, done) {
done(null, user.id);
});
passport.deserializeUser(function (id, done) {
User.findById(id, function (err, user) {
done(err, user);
});
});
//so that current user data is avialable to every route
app.use(function(req,res,next){
res.locals.currentUser = req.user;
res.locals.error = req.flash("error");
res.locals.success = req.flash("success");
next();
});
app.use(Indexroutes);
app.use(Companyroutes);
app.use(Seekerroutes);
app.use(Jobroutes);
app.use(Postsroutes);
app.use(quizroutes);
app.use(adminroutes);
app.use(job_part2);
app.use(pass_reset);
app.use(profile);
app.use(imagesroute);
app.use(project);
var port = process.env.PORT || 3000;
app.listen(port, function () {
console.log("Server has started");
});