Professional Documents
Culture Documents
com/en-GB/quiz/39191895/ip-p1
https://www.goconqr.com/en-GB/quiz/39192122/ip-p2
https://www.goconqr.com/en-GB/quiz/39192202/ip-p3
https://www.goconqr.com/en-GB/quiz/39192271/ip-p4
https://www.goconqr.com/en-GB/quiz/39192341/ip-p5
https://www.goconqr.com/quiz/39193231/ip-3
https://www.goconqr.com/quiz/28425104/ip-quiz-1
https://www.goconqr.com/quiz/28425536/ip-quiz-2
https://www.goconqr.com/quiz/28426387/ip-quiz-3
https://www.goconqr.com/quiz/39187873/ip
https://www.goconqr.com/quiz/39138744/ip-stuff-1
https://www.goconqr.com/quiz/39138877/ip-stuff-2
https://www.goconqr.com/quiz/39138953/ip-stuff-3
mongoose.connect(process.env.DATABASE, {
userNewUrlParser:true,
useUnifiedTopology:true,
useCreateIndex:true,
useFindAndModify:false
}).then(()=>console.log("DB connected"))
.catch(err)=>console.log(err));
app.use(morgan('dev'));
app.use(bodyParser.json({limit: "5mb"}));
app.use(bodyParser.urlencoded({
limit: "5mb",
extended: true
}));
app.use();
app.use();
const{email,password}=req.body;
//validation
if(!email){
return next(new ErrorResponse("Please add an email",403));
}
if(!password){
return next(new ErrorResponse("Please add a password",403));
}
//check user email
const user=await User.findOne({email});
if(!user){
return next(new ErrorResponse("Invalid credentials",403));
}
//check password
const isMatched=await user.comparePassword(password);
if(!isMatched){
return next(new ErrorResponse("Invalid credentials",403));
}
userSchema.methods.comparePassword=async function(enterPassword){
return await bcrypt.compare(enterdPassword,this.password);
}
//log out
exports.logout=(req,res,next)=>{
res.clearCookie('token');
res.status(200).json({
success:true,
message:"logged out"})
}