你如何在Sequelize中检测到UniqueConstraintError?

时间:2018-04-03 16:57:27

标签: node.js sequelize.js

我想在已经存在唯一属性的情况下重试创建记录,那么如何检查创建新记录的失败是否归因于UniqueConstraintError。

我正在尝试查找示例代码但无法找到任何内容。

2 个答案:

答案 0 :(得分:1)

import {UniqueConstraintError} from 'sequelize'

Model
.create({...})
.then(obj => {})
.catch(err => {
    if(err instanceof UniqueConstraintError){
        throw new Error('duplicate error')
    }
    else{
        throw err
    }
})

如果您还需要字段名称(导致此错误),这可能会有所帮助

err.errors[0].path

答案 1 :(得分:0)

Model.create(objectToCreate)
      .catch(sequelize.UniqueConstraintError, () => { // TODO });

如果您使用bulkCreate,您可以在选项ignoreDuplicates中使用布尔属性(Postgres不支持)或updateOnDuplicate(仅受MySQL支持)