Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Automatically transform Mongoose validation error message(s) to a humanized and readable format

License

Notifications You must be signed in to change notification settings

ladjs/mongoose-validation-error-transform

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

mongoose-validation-error-transform

Slack Status NPM version Standard JS Style MIT License

Automatically transform Mongoose validation error message(s) to a humanized and readable format, built for CrocodileJS.

Index

Install

npm install --save mongoose-validation-error-transform

You may also want to use mongoose-beautiful-unique-validation too (see this comment)!

Usage

const mongooseValidationErrorTransform = require('mongoose-validation-error-transform');

mongoose.plugin(mongooseValidationErrorTransform, {

  //
  // these are the default options you can override
  // (you don't need to specify this object otherwise)
  //

  // should we capitalize the first letter of the message?
  capitalize: true,

  // should we convert `full_name` => `Full name`?
  humanize: true,

  // how should we join together multiple validation errors?
  transform: function(messages) {
    return messages.join(', ');
  }

});

If you have a Mongoose schema defined with a required String field full_name, and if there is an error with a missing full_name on a document - then it will automatically rewrite the message of full_name is required to Full name is required.

If there are multiple validation error messages, such as:

  • full_name is required
  • age is not at least (18)

Then it will rewrite the error message to Full name is required, Age is not at least (18).

Of course - by modifying the options mentioned above, you can transform the messages however you'd like.

For example, if you'd like to output a <ul> HTML tag with <li> for each error (but only of course if there's more than one error):

mongoose.plugin(mongooseValidationErrorTransform, {
  transform: function(messages) {
    if (messages.length === 1) return messages[0];
    return `<ul><li>${messages.join('</li><li>')}</li></ul>`;
  }
});

This would output the following for the previous example:

<ul><li>Full name is required</li><li>Age is not at least (18)</li></ul>

License

MIT © Nick Baugh

About

Automatically transform Mongoose validation error message(s) to a humanized and readable format

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.