我想要nodeJS(快速)中的某种机制,该机制可以在使用序列化ORM处理MySQL数据库中的记录时检查任何错误。 例如:
sequelize.create({
name: req.body.name,
email: req.body.email })
.then((data)=> { res.send('mysuccess message'); })
.catch( (err) => {
if( <unique key is violated> ) {
res.send('myerrormessage');
}
}));
谢谢大家。
答案 0 :(得分:2)
Sequelize提供了可以在catch块中检查的错误类
http://docs.sequelizejs.com/class/lib/errors/index.js~UniqueConstraintError.html
sequelize.create({
name: req.body.name,
email: req.body.email })
.then((data)=> { res.send('mysuccess message'); })
.catch(Sequelize.UniqueConstraintError => {
res.send('myerrormessage');
}));
如果要使用try ... catch版本,则无法累计catch块,因此您可能需要使用
进行检查if (err instanceof Sequelize.UniqueConstraintError)
答案 1 :(得分:0)
你在这里
sequelize.query
被sequelize
中的所有查询使用,所以也许 您可以覆盖它并附加一个错误处理程序:Sequelize.prototype.query = function () { return originalQuery.apply(this, arguments).catch(function (err) { // log the error throw err; }); };
更多详细信息: DO READ