0% found this document useful (0 votes)
9 views

userRepositoryDatabase

The document contains a Node.js module for user authentication, including functions for rendering registration and login pages, registering users, logging in, and logging out. It handles user registration with error handling for duplicate emails and provides feedback through flash messages. The login function redirects users to their intended destination after successful login, while the logout function logs the user out and redirects them to the campgrounds page.

Uploaded by

David Pavlovski
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

userRepositoryDatabase

The document contains a Node.js module for user authentication, including functions for rendering registration and login pages, registering users, logging in, and logging out. It handles user registration with error handling for duplicate emails and provides feedback through flash messages. The login function redirects users to their intended destination after successful login, while the logout function logs the user out and redirects them to the campgrounds page.

Uploaded by

David Pavlovski
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

const User = require('..

/models/user');

module.exports.renderRegister = (req, res) => {


res.render('users/register');
};

module.exports.register = async (req, res, next) => {


try {
const { username, email, password } = req.body;
const user = new User({ username, email });
const registerUser = await User.register(user, password);
req.login(registerUser, (err) => {
if (err) return next();
req.flash('success', `Welcome to yelpCamp ${username}`);
res.redirect('/campgrounds');
});
} catch (err) {
if (err.name === 'MongoError' && err.code === 11000) {
console.log(err.name);
req.flash('error', 'User with that email already exists!');
res.redirect('/user/register');
} else {
req.flash('error', err.message);
res.redirect('/user/register');
}
}
};

module.exports.renderLogin = (req, res) => {


res.render('users/login');
};

module.exports.login = async (req, res) => {


const { username } = req.body;
const redirect = req.session.returnTo || '/campgrounds';
req.flash('success', `Welcome back ${username}`);
delete req.session.returnTo;
res.redirect(redirect);
// res.send('logging you in');
};

module.exports.logout = (req, res) => {


req.logOut();
req.flash('success', 'see you again soon!');
res.redirect('/campgrounds');
};

module.exports.login = async (req, res) => {


const { username } = req.body;
const redirect = req.session.returnTo || '/campgrounds';
req.flash('success', `Welcome back ${username}`);
delete req.session.returnTo;
res.redirect(redirect);
// res.send('logging you in');
};

module.exports.logout = (req, res) => {


req.logOut();
req.flash('success', 'see you again soon!');
res.redirect('/campgrounds');
};
module.exports.login = async (req, res) => {
const { username } = req.body;
const redirect = req.session.returnTo || '/campgrounds';
req.flash('success', `Welcome back ${username}`);
delete req.session.returnTo;
res.redirect(redirect);
// res.send('logging you in');
};

module.exports.logout = (req, res) => {


req.logOut();
req.flash('success', 'see you again soon!');
res.redirect('/campgrounds');
};
module.exports.login = async (req, res) => {
const { username } = req.body;
const redirect = req.session.returnTo || '/campgrounds';
req.flash('success', `Welcome back ${username}`);
delete req.session.returnTo;
res.redirect(redirect);
// res.send('logging you in');
};

module.exports.logout = (req, res) => {


req.logOut();
req.flash('success', 'see you again soon!');
res.redirect('/campgrounds');
};
module.exports.login = async (req, res) => {
const { username } = req.body;
const redirect = req.session.returnTo || '/campgrounds';
req.flash('success', `Welcome back ${username}`);
delete req.session.returnTo;
res.redirect(redirect);
// res.send('logging you in');
};

module.exports.logout = (req, res) => {


req.logOut();
req.flash('success', 'see you again soon!');
res.redirect('/campgrounds');

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

module.exports.renderRegister = (req, res) => {


res.render('users/register');
};

module.exports.register = async (req, res, next) => {


try {
const { username, email, password } = req.body;
const user = new User({ username, email });
const registerUser = await User.register(user, password);
req.login(registerUser, (err) => {
if (err) return next();
req.flash('success', `Welcome to yelpCamp ${username}`);
res.redirect('/campgrounds');
});
} catch (err) {
if (err.name === 'MongoError' && err.code === 11000) {
console.log(err.name);
req.flash('error', 'User with that email already exists!');
res.redirect('/user/register');
} else {
req.flash('error', err.message);
res.redirect('/user/register');
}
}
};

module.exports.renderLogin = (req, res) => {


res.render('users/login');
};

module.exports.login = async (req, res) => {


const { username } = req.body;
const redirect = req.session.returnTo || '/campgrounds';
req.flash('success', `Welcome back ${username}`);
delete req.session.returnTo;
res.redirect(redirect);
// res.send('logging you in');
};

module.exports.logout = (req, res) => {


req.logOut();
req.flash('success', 'see you again soon!');
res.redirect('/campgrounds');
};

};

You might also like