mongoose-error-handler
v1.1.0
Published
Simplifies the errors from mongoose's scheme validation with internacionalization (i18nex) support
Downloads
378
Maintainers
Readme
mongoose-error-handler
Simplifies the errors from mongoose's scheme validation with internacionalization (i18nex) support
Validation Error
Before
message: "domain validation failed",
name: "ValidationError",
errors: {
myField: {
properties: {
type: "required",
message: "ERROR MESSAGE",
path: "myField",
value: ""
},
message: "ERROR MESSAGE",
name: "ValidatorError",
kind: "required",
path: "myField",
value: ""
}
After
errors: {
myField: "domain.domainRequired"
}
Mongo Error
Before
{
driver: true,
name: "MongoError",
index: 0,
code: 11000,
errmsg: "E11000 duplicate key error collection: reportsService.service_5d272c4bf7b1cd009d593403 index: origin_id_1 dup key: { : \"TestOrigin\" }"
}
After
errors: {
MongoError: "E11000 duplicate key error collection: reportsService.service_5d272c4bf7b1cd009d593403 index: origin_id_1 dup key: { : \"TestOrigin\" }"
}
Exemple 1 ( Without internacionalization )
// LOAD THE RESOURCES
mongoose = require('mongoose');
config = require('../config/general');
mongoose.connect(config.database);
// LOAD MODULE
mongooseErrorHandler = require('mongoose-error-handler');
// LOAD MODEL
var myModel = require('../models/myModel');
var newModel = new myModel({
myField: 'foo',
});
var error = newModel.validateSync();
console.log(mongooseErrorHandler.set(error));
Exemple 2 - A Route in Node.js Express( With i18next internacionalization )
// LOAD THE RESOURCES
router = require('express').Router();
mongoose = require('mongoose');
config = require('../config/general');
mongoose.connect(config.database);
// LOAD MODULE
mongooseErrorHandler = require('mongoose-error-handler');
// LOAD MODEL
var myModel = require('../models/myModel');
router.post('/myroute', function(req, res, next) {
var newModel = new myModel({
myField: 'foo',
});
// save
newModel.save(function(err) {
if(err)
// An Example of error handling
res.status(400).json({success: false, msg: mongooseErrorHandler.set(error, req.t)});
else
res.status(200).json({success: true, msg: req.t('myInternacionalizedString')});
});
});
module.exports = router;
Exemple 3 - A Route in Node.js Express( With i18next internacionalization and String Replacement )
// LOAD THE RESOURCES
router = require('express').Router();
mongoose = require('mongoose');
config = require('../config/general');
mongoose.connect(config.database);
// LOAD MODULE
mongooseErrorHandler = require('mongoose-error-handler');
// LOAD MODEL
var myModel = require('../models/myModel');
router.post('/myroute', function(req, res, next) {
var newModel = new myModel({
myField: 'foo',
});
// save
newModel.save(function(err) {
if(err)
// An Example of error handling
res.status(400).json({
success: false,
msg: mongooseErrorHandler.set(error, req.t, {variable: 'stringForReplacement'})
});
else
res.status(200).json({success: true, msg: req.t('myInternacionalizedString')});
});
});
module.exports = router;
Tests
$ npm test