J'ai un gestionnaire d'erreur personnalisé dans mon application express. La configuration:Le gestionnaire d'erreurs inconnu inconnu enregistre les erreurs personnalisées
app.use(Routes.error);
app.use(express.static(__dirname + '/assets'));
app.use(express.cookieParser(config.app.sessionSecret));
app.use(express.bodyParser());
app.use(express.session({
cookie: {
maxAge: 60000
}
}));
app.use(flashify);
app.use(expressValidator);
app.use(app.router);
Le routeur d'erreur:
error: function(err, req, res, next) {
res.render('error.jade', {
error: err.message
}, function(renderError, html) {
if (renderError) {
res.send(500, 'Error while displaying the error template!');
} else {
res.send(err.code, html);
}
});
},
Le problème que j'ai est qu'un message d'erreur personnalisé est enregistré dans la console:
//In the route
next(new NotFoundError('Could not find the template!'));
//Custom error
var NotFoundError = function(message) {
this.code = 404;
this.message = message;
};
util.inherits(NotFoundError, Error);
NotFoundError.name = 'NotFoundError';
Ceci est très inquiétant au cours de la Tests unitaires:
✔ server - testTemplateCreate
Error: Could not find the template!
✔ server - testTemplateEdit
Il est correct que le modèle n'a pas pu être trouvé, mais je ne veux pas que le message soit affiché. Je pensais que si vous fournissiez une route d'erreur personnalisée, aucune fonction d'erreur native n'est utilisée.
Merci, cela a fonctionné! J'ai déjà lu que l'ordre compte et a changé certaines parties de celui-ci, mais je ne pensais pas que vous deviez mettre le routage d'erreur derrière le routeur normaler. – Tim