Client-side required password and email fields

This commit is contained in:
Sahat Yalkabov
2013-12-05 23:12:43 -05:00
parent 3ecd3ad148
commit 1ddd639592
3 changed files with 10 additions and 13 deletions

View File

@ -65,30 +65,27 @@ exports.getSignup = function(req, res) {
*/
exports.postSignup = function(req, res) {
var user = new User({
username: req.body.email,
password: req.body.password,
confirmPassword: req.body.confirmPassword
});
if (req.body.password !== req.body.confirmPassword) {
req.flash('messages', 'Passwords do not match');
return res.redirect('/signup');
}
var user = new User({
username: req.body.email,
password: req.body.password
});
user.save(function(err) {
if (err) {
if (err.name === 'ValidationError') {
req.flash('messages', _.map(err.errors, function(value, key) { return value.message; }));
}
if (err.code === 11000) {
req.flash('messages', 'User already exists');
}
return res.redirect('/signup');
}
req.logIn(user, function(err) {
if (err) throw err;
res.redirect('/');

View File

@ -2,7 +2,7 @@ var mongoose = require('mongoose'),
bcrypt = require('bcrypt');
var userSchema = new mongoose.Schema({
username: { type: String, unique: true },
username: { type: String, index: true, unique: true },
email: String,
name: String,
password: String,

View File

@ -11,11 +11,11 @@ block content
span.text-muted NAME
form(method='POST')
.form-group
input.form-control(type='email', name='email', id='email', placeholder='Email', autofocus='')
input.form-control(type='email', name='email', id='email', placeholder='Email', autofocus='', required='')
.form-group
input.form-control(type='password', name='password', id='password', placeholder='Password')
input.form-control(type='password', name='password', id='password', placeholder='Password', required='')
.form-group
input.form-control(type='password', name='confirmPassword', id='confirmPassword', placeholder='Confirm Password')
input.form-control(type='password', name='confirmPassword', id='confirmPassword', placeholder='Confirm Password', required='')
button(type='submit')
i.fa.fa-chevron-right
.form-options.clearfix