Add contact page server side validation assertions using express-validator

pull/2/head
Sahat Yalkabov 2014-01-23 22:19:18 -05:00
parent 9a4c5450eb
commit 76475411d1
2 changed files with 19 additions and 6 deletions

View File

@ -10,7 +10,7 @@ exports.getContact = function(req, res) {
res.render('contact', {
title: 'Contact',
success: req.flash('success'),
error: req.flash('error')
errors: req.flash('errors')
});
};
@ -23,6 +23,18 @@ exports.getContact = function(req, res) {
*/
exports.postContact = function(req, res) {
req.assert('name', 'Name cannot be blank').notEmpty();
req.assert('email', 'Email cannot be blank').notEmpty();
req.assert('email', 'Email is not valid').isEmail();
req.assert('message', 'Message cannot be blank').notEmpty();
var errors = req.validationErrors();
if (errors) {
req.flash('errors', errors);
return res.redirect('/contact');
}
var from = req.body.email;
var name = req.body.name;
var body = req.body.message;

View File

@ -1,9 +1,10 @@
extends layout
block content
if error.length
if errors.length
.alert.alert-danger
p= error
for error in errors
div= error.msg
if success.length
.alert.alert-success
p= success
@ -15,15 +16,15 @@ block content
.form-group
label(class='col-sm-2 control-label', for='email') Name
.col-sm-8
input.form-control(type='name', name='name', id='name', required=true)
input.form-control(type='name', name='name', id='name', autofocus=true)
.form-group
label(class='col-sm-2 control-label', for='email') Email
.col-sm-8
input.form-control(type='email', name='email', id='email', required=true)
input.form-control(type='text', name='email', id='email')
.form-group
label(class='col-sm-2 control-label', for='contactBody') Body
.col-sm-8
textarea.form-control(type='text', name='message', id='message', rows='7', required=true)
textarea.form-control(type='text', name='message', id='message', rows='7')
.form-group
.col-sm-offset-2.col-sm-8
button.btn.btn-default(type='submit')