我在Node / Express中使用Sequelize ORM.
我有两个表,用户和项目. Item具有与UserId相关联的外键.
当我尝试创建一个UserId无效的Item(不存在于Users表中)时,会抛出一个“SequelizeForeignKeyConstraintError”并导致未处理的应用程序崩溃.
我的问题是这样的:
我在哪里处理错误?
这是我的代码
.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 }); }); });
解决方法
如果要处理特定错误,请附加一个.catch处理程序
models.Item.create({ title : req.body.title,UserId : req.body.UserId }).then(function(item){ res.json({ "Message" : "Created item.","Item" : item }); }).catch(function (err) { // handle error; });
如果你想更普遍地处理错误(即显示一个很好的错误消息,而不是杀死你的服务器,你可能想看看unhandledexception
https://nodejs.org/api/process.html#process_event_uncaughtexception
如果您使用express,它还包含一些错误处理设施http://expressjs.com/en/guide/error-handling.html