Socket
Socket
Sign inDemoInstall

mongoose-errors-handler-i18n

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    mongoose-errors-handler-i18n

Express/Node.js module to create internationalized formatted errors in Mongoose. 🇫🇷🇺🇸


Version published
Maintainers
1
Install size
21.1 kB
Created

Readme

Source

mongoose-errors-handler-i18n

Express/Node.js module to create internationalized formatted errors in Mongoose. 🇫🇷🇺🇸

mongoose-i18n-error is a lightweight module for node.js/express.js to create beautiful mongoose i18n validation error messages. It is built on top of the awesome i18n-node translation module.

{
	username: {
		type: 'required',
		message: 'is required',
		value: undefined
	},
	email: {
		type: 'regexp',
		message: 'is no valid email',
		value: 'johndoe.de'
	}
}

Usage

npm install mongoose-errors-handler-i18n --save

Configure your app to support i18n:

var i18n = require('i18n');

i18n.configure({
	locales: ['en', 'fr'],
	directory: './locales'
});

app.use(i18n.init);

Then, simply add the module as an express error handler middleware:

var i18nMongooseError = new (require('mongoose-i18n-error'))();

app.use(i18nMongooseError.handler(function(err, req, res, next) {
	res.status(422).json(err);
}));

Options

By default, the plugin will prefix the error messages in your locale files with 'error.':

"error.required": "is required",
"error.minlength": "needs a minimum length of %s",
"error.user.password.regexp": "is no valid email",
"error.cast": "is not valid"

You can change the prefix by passing the prefix attribute as options:

var i18nMongooseError = new (require('mongoose-i18n-error'))({
	prefix: 'err.'
});

Custom validators

In your custom mongoose validators your error message should now apply to the key in your locales.

var Schema = new mongoose.Schema({
	name: {
		type: String,
		validate: {
			validator: function(v) {
				return /^[A-Z]*$/i.test(v);
			},
			message: 'user.name.alpha'	// or 'alpha'
		}
	}
});

Tests

To run the tests you need a local MongoDB instance available. Run with:

npm test

Issues

Please use the GitHub issue tracker to raise any problems or feature requests.

If you would like to submit a pull request with any changes you make, please feel free!

Keywords

FAQs

Last updated on 02 Jan 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc