【问题标题】:Want to check exception or failure reason from sequelize ORM想要从 sequelize ORM 检查异常或失败原因
【发布时间】:2019-01-30 22:49:06
【问题描述】:

我想要 nodeJS (express) 中的一些机制,可以在使用 sequelize 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');
    }
}));

谢谢大家。

【问题讨论】:

    标签: node.js express error-handling sequelize.js


    【解决方案1】:

    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)
    

    【讨论】:

      【解决方案2】:

      给你

      sequelize.querysequelize 中的所有查询使用,所以也许 你可以覆盖它并附加一个错误处理程序:

      Sequelize.prototype.query = function () {
        return originalQuery.apply(this, arguments).catch(function (err) {
          // log the error 
      
          throw err;
        });
      };
      

      更多详情:DO READ

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-27
        • 2016-07-02
        • 2018-03-21
        • 2019-05-27
        • 2013-05-06
        • 1970-01-01
        • 2016-06-22
        • 2013-08-05
        相关资源
        最近更新 更多