diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index 786f70d8c7c2b1f3ca51190d78d60e705864fb04..e75f65bf5208dacdfb44e4a94fe77ffbfea0a262 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -84,7 +84,7 @@ gulp.task('test', ['pre-test'], () => {
                 branches: 70,
                 lines: 80,
                 functions: 80
-            }
+            } 
         }
     }))
     .on('error', () => {
@@ -115,4 +115,4 @@ gulp.task('run', () => {
     });
 });
 
-gulp.task('default', ['run']);
+gulp.task('default', ['run']);
\ No newline at end of file
diff --git a/src/libs/models/user.js b/src/libs/models/user.js
index 554fabf05b5816c0a13ecc825a682dcb141e803c..9b9c2fa5c70bafd507f0a60a062b80efe45b4d13 100644
--- a/src/libs/models/user.js
+++ b/src/libs/models/user.js
@@ -9,47 +9,47 @@ var UserSchema = new Schema({
     email: {
         type: String,
         unique: true,
-        required: true
+        required: [true, 'O campo Email é obrigatório.']
     },
     password: {
         type: String,
-        required: true
+        required: [true, 'O campo Senha é obrigatório.']
     },
     name: {
         type: String,
-        required: true
+        required: [true, 'O campo Nome é obrigatório.']
     },
     cpf:{
         type: String,
         unique: true,
-        required: true
+        required: [true, 'O campo CPF é obrigatório.']
     },
     schooling: {
         type: String,
-        required: true
+        required: [true, 'O campo Escolaridade é obrigatório.']
     },
     course: {
         type: String,
     },
     segment: {
         type: String,
-        required: true
+        required: [true, 'O campo Segmento é obrigatório.']
     },
     role: {
         type: String,
-        required: true
+        required: [true, 'O campo Função é obrigatório.']
     },
     institution_name: {
         type: String,
-        required: true
+        required: [true, 'O campo Instituição em que trabalha é obrigatório.']
     },
     state: {
         type: String,
-        required: true
+        required: [true, 'O campo Estado é obrigatório.']
     },
     city: {
         type: String,
-        required: true
+        required: [true, 'O campo Cidade é obrigatório.']
     },
     receive_emails: {
         type: Boolean
diff --git a/src/libs/routes/user.js b/src/libs/routes/user.js
index eb1732b18f6a04a74c6799ac81d7a4ca027c8e82..c8320c0de0e8ce91cccf5fabdaadaaaab7317c5e 100644
--- a/src/libs/routes/user.js
+++ b/src/libs/routes/user.js
@@ -21,83 +21,17 @@ function emailSyntax(email) {
 }
 
 userApp.post('/', (req, res, next) => {
-    if (!req.body.email) {
-        res.json({success: false, msg: 'O campo Email é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.password) {
-        res.json({success: false, msg: 'O campo Senha é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if(!emailSyntax(req.body.email)){
-        res.json({success: false, msg: 'O email informado é inválido.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.name) {
-        res.json({success: false, msg: 'O campo Nome é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.cpf) {
-        res.json({success: false, msg: 'O campo CPF é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.schooling) {
-        res.json({success: false, msg: 'O campo Escolaridade é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.segment) {
-        res.json({success: false, msg: 'O campo Segmento é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.role) {
-        res.json({success: false, msg: 'O campo Função é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.institution_name) {
-        res.json({success: false, msg: 'O campo Instituição em que trabalha é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.city) {
-        res.json({success: false, msg: 'O campo Cidade é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.state) {
-        res.json({success: false, msg: 'O campo Estado é obrigatório.'});
+    if(req.body.email){
+        if(!emailSyntax(req.body.email)){
+            res.json({success: false, msg: 'O email informado é inválido.'});
+        } else {
+            next();
+        }
     } else {
         next();
     }
-
-}, (req, res, next) => {
+},
+ (req, res, next) => {
     User.count({'email': req.body.email}, function(err, count){
         if (err){
             log.error('MongoDB error: ' + err);
@@ -141,9 +75,23 @@ userApp.post('/', (req, res, next) => {
 
     // save the user
     newUser.save((err) => {
-        if (err) {
-            res.json({success: false, msg: 'Um erro ocorreu no banco de dados.'});
-        } else {
+        if (err){
+            let errArray = [];
+            let errMsg = '';
+            for (var e in err.errors) {
+                    errArray.push(err.errors[`${e}`].message);
+            }
+            for (var i = 0; i < errArray.length; i++) {
+                    if(i > 0){
+                        errMsg = '\n' + errMsg + errArray[i];
+                    }
+                    else{
+                        errMsg = errMsg + errArray[i];
+                    }
+            }
+            res.json({success: false, msg: errMsg});
+        }
+         else {
             res.json({success: true, msg: 'Usuário cadastrado com sucesso!'});
         }
     });