Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 40 additions & 23 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,50 @@
require("dotenv").config();
const dotenv = require("dotenv");

const mongoose = require("mongoose");
const express = require("express");
const express = require('express');
const expressLayouts = require('express-ejs-layouts');
const app = express();
const bodyParser = require("body-parser");
const cors = require("cors");

const dbString = process.env.DATABASE ;
dotenv.config();
//Connect to Mongo
mongoose.connect(process.env.DB_CONNECT, { useNewUrlParser: true })
.then(() => console.log('MongoDB Connected...'))
.catch(err => console.log(err));

//DB Connection
mongoose
.connect(dbString, {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
})
.then(() => {
console.log("DB CONNECTED");
});
//EJS
app.use(expressLayouts);
app.set('view engine', 'ejs');

//Middlewares
app.use(bodyParser.json());
app.use(cors());
//Bodyparser
app.use(express.urlencoded({ extended: false }));

//Routes
app.use('/', require('./routes/index'));
app.use('/users', require('./routes/users'));

//PORT
const port = process.env.PORT || 8000;
const PORT = process.env.PORT || 5000;
// const bodyParser = require("body-parser");
// const cors = require("cors");

// const dbString = process.env.DATABASE
// //DB Connection
// mongoose
// .connect(dbString, {
// useNewUrlParser: true,
// useUnifiedTopology: true,
// useCreateIndex: true,
// })
// .then(() => {
// console.log("DB CONNECTED");
// });

// //Middlewares
// app.use(bodyParser.json());
// app.use(cors());


// //PORT
// const port = process.env.PORT || 8000;

//Starting a server
app.listen(port, () => {
console.log(`app is running at ${port}`);
});
app.listen(PORT, console.log(`app is running at ${PORT}`));
15 changes: 15 additions & 0 deletions config/auth.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
module.exports = {
ensureAuthenticated: function (req, res, next) {
if (req.isAuthenticated()) {
return next();
}
req.flash('error_msg', 'Please log in to view that resource');
res.redirect('/users/login');
},
forwardAuthenticated: function (req, res, next) {
if (!req.isAuthenticated()) {
return next();
}
res.redirect('/dashboard');
}
};
40 changes: 40 additions & 0 deletions config/passport.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
const LocalStrategy = require('passport-local').Strategy;
const bcrypt = require('bcryptjs');


const User = require('../models/User');

module.exports = function (passport) {
passport.use(
new LocalStrategy({ usernameField: 'email' }, (email, password, done) => {

User.findOne({
email: email
}).then(user => {
if (!user) {
return done(null, false, { message: 'That email is not registered' });
}


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' });
}
});
});
})
);

passport.serializeUser(function (user, done) {
done(null, user.id);
});

passport.deserializeUser(function (id, done) {
User.findById(id, function (err, user) {
done(err, user);
});
});
};
24 changes: 24 additions & 0 deletions models/user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
date: {
type: String,
default: Date.now
}
});

const User = mongoose.model('User', UserSchema);

module.exports = User;
Loading