format express-validator errors

This commit is contained in:
Matteo Pagliazzi
2015-11-23 21:34:21 +01:00
parent 4a941deece
commit 1bf91030c6
3 changed files with 13 additions and 5 deletions

View File

@@ -103,7 +103,7 @@ describe('errorHandler', () => {
}); });
it('handle express-validator errors', () => { it('handle express-validator errors', () => {
let error = [{param: 'param', msg: 'invalid param'}]; let error = [{param: 'param', msg: 'invalid param', value: 123}];
errorHandler(error, req, res, next); errorHandler(error, req, res, next);
@@ -114,7 +114,9 @@ describe('errorHandler', () => {
expect(res.json).to.be.calledWith({ expect(res.json).to.be.calledWith({
error: 'BadRequest', error: 'BadRequest',
message: 'Invalid request parameters.', message: 'Invalid request parameters.',
errors: error, errors: [
{param: error[0].param, value: error[0].value, message: error[0].msg}
],
}); });
}); });

View File

@@ -35,7 +35,13 @@ export default function errorHandler (err, req, res, next) { // eslint-disable-l
// Handle errors by express-validator // Handle errors by express-validator
if (Array.isArray(err) && err[0].param && err[0].msg) { if (Array.isArray(err) && err[0].param && err[0].msg) {
responseErr = new BadRequest(res.t('invalidReqParams')); responseErr = new BadRequest(res.t('invalidReqParams'));
responseErr.errors = err; // TODO format responseErr.errors = err.map((paramErr) => {
return {
message: paramErr.msg,
param: paramErr.param,
value: paramErr.value,
}
});
} }
// Handle mongoose validation errors // Handle mongoose validation errors
@@ -43,8 +49,8 @@ export default function errorHandler (err, req, res, next) { // eslint-disable-l
responseErr = new BadRequest(err.message); responseErr = new BadRequest(err.message);
responseErr.errors = map(err.errors, (mongooseErr) => { responseErr.errors = map(err.errors, (mongooseErr) => {
return { return {
path: mongooseErr.path,
message: mongooseErr.message, message: mongooseErr.message,
path: mongooseErr.path,
value: mongooseErr.value, value: mongooseErr.value,
}; };
}); });

View File

@@ -21,7 +21,7 @@ export default function attachMiddlewares (app) {
extended: true, // Uses 'qs' library as old connect middleware extended: true, // Uses 'qs' library as old connect middleware
})); }));
app.use(bodyParser.json()); app.use(bodyParser.json());
app.use(expressValidator()); // TODO config app.use(expressValidator());
app.use(analytics); app.use(analytics);
app.use(responseHandler); app.use(responseHandler);
app.use(getUserLanguage); app.use(getUserLanguage);