Où le traitement de l'erreur dans un sequelize ORM l'instruction de la requête?
Je suis en utilisant Sequelize ORM dans Node/Express.
J'ai deux tables, l'Utilisateur et l'Objet. Item a une clé étrangère liée à UserId.
Lorsque j'essaie de créer un Élément avec un nom d'utilisateur qui n'est pas valide (non présents dans la table des Utilisateurs) un "SequelizeForeignKeyConstraintError" est lancé et conduit à s'écraser de la demande due à la non prise en charge.
Le problème que j'ai est: est-ce
Où puis-je gérer l'erreur?
Voici mon code.
.post(function(req,res){
models.Item.create({
title : req.body.title,
UserId : req.body.UserId
}).then(function(item){
res.json({
"Message" : "Created item.",
"Item" : item
});
});
});
OriginalL'auteur Josh Hale | 2016-02-11
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez gérer l'erreur spécifique, joindre une
.catch
gestionnaireSi vous voulez gérer les erreurs de façon plus générale (c'est à dire d'afficher un joli message d'erreur, au lieu de tuer votre serveur, vous pouvez avoir un coup d'oeil à unhandledexception
https://nodejs.org/api/process.html#process_event_uncaughtexception
Si vous utilisez express, il contient également quelques fonctions de gestion des erreurs http://expressjs.com/en/guide/error-handling.html
.catch(Sequelize.SequelizeForeignKeyConstraintError, function (err) { // handle onky foreign key errors ; });
est-il possible de traiter tous les ORM erreurs HTTP 500 d'état et d'erreur par défaut du gestionnaire dans l'express? en fait, je ne veux pas ajouter
.catch(err=>{next(err)});
chaque fois que j'ai frappé à la base de données.OriginalL'auteur Jan Aagaard Meier