Closed jlgit closed 8 years ago
@jlgit
config/locales
filesHope it help
I'm using: sails -v 0.11.0
And yes I tried implementing it all exactly as you explain in your readme file.
//model validation messages definitions validationMessages: { email: { required: 'Email is required', unique: 'Email address is already taken' }, username: { required: 'Username is required' } },
@jlgit
Please try to look on example model on how to properly define custom validation messages.
HIH.
This is how my whole model looks... what am I doing wrong?
module.exports = {
attributes: {
name: {
type: 'string',
required: true,
minLength: 2,
maxLength: 30
},
username: {
type: 'string',
required: true,
unique: true,
minLength: 2,
maxLength: 30
},
email:{
type: 'email',
unique: true,
required: true,
unique: true
},
password:{
type: 'string',
required: true,
minLength: 6,
maxLength: 50
},
verifyPassword: function (password) {
return bcrypt.compareSync(password, this.password);
},
changePassword: function(newPassword, cb){
this.newPassword = newPassword;
this.save(function(err, u) {
return cb(err,u);
});
},
toJSON: function() {
var obj = this.toObject();
return obj;
}
},
//model validation messages definitions
validationMessages: {
email: {
required: 'Email address is required',
unique: 'Email address is already taken'
},
username: {
required: 'Username is required'
}
}
};
@jlgit
If you look on line, it seems hook try to find a custom message for a validation rule and it does not found it.
Currently, sails-hook-validation
require for every validation rule defined to have an associated custom message in validationMessages
. As you can see some of your attributes have validation rules but they dont have associated custom error message. This is where you get a problem.
A quick fix is to define empty custom message for per validation rule. Otherwise sails-hook-validation
need a fix to this to allow validation rule to exist without their associated custom message.
Hope it helps.
Following your recommendation I've updated my model still getting the same error message, my new model look like this now:
module.exports = {
attributes: {
name: {
type: 'string',
required: true,
minLength: 2,
maxLength: 30
},
username: {
type: 'string',
required: true,
unique: true,
minLength: 2,
maxLength: 30
},
email:{
type: 'email',
required: true,
unique: true
},
password:{
type: 'string',
required: true,
minLength: 6,
maxLength: 50
}
},
//model validation messages definitions
validationMessages: {
name: {
type: 'You should submit an string',
required: 'You should enter your name',
minLength: 'Your name should be at least 2 characters long',
maxLength: 'Your name should be shorter than 30 characters'
},
username: {
type: 'You should submit an string',
required: 'You should enter a username',
unique: 'Selected username is already taken',
minLength: 'Your name should be at least 2 characters long',
maxLength: 'Your name should be shorter than 30 characters'
},
email: {
type: 'You should submit an string',
required: 'Email address is required',
unique: 'Email address is already taken',
email: 'Provide valid email address'
},
password: {
type: 'You should submit an string',
required: 'You should enter your password',
minLength: 'Your password should be at least 6 characters long',
maxLength: 'Your password should be shorter than 50 characters'
}
}
};
@jlgit
May you please fork this repo, add yout model under api/models
then send me a pull request maybe be i can track it use failed test cases.
Regards.
Hi Guys! Same problem here. Do you have any updates? I'll appreciate Best
I already solved it. I added enum message and It works. Thanks
Hi guys, I have the same problem. Do you have any fix or update for this issue? thanks.
I'm using sails version 0.11.0 and sails-hook-validation 0.4.1, this is the log that my server printed
/node_modules/sails-hook-validation/lib/validateCustom.js:92 customMessage = messages[validationField][fieldErro ^ TypeError: Cannot read property 'required' of undefined
@FherUnity @jlgit @javiercornejo
Check v0.4.3
I just downloaded the code and follow your instructiosn and for some reason I'm gettingt he following error when running the create method:
/apps/sails/node_modules/sails-hook-validation/lib/validateCustom.js:90 customMessage = messages[validationField][fieldErro ^ TypeError: Cannot read property 'required' of undefined