【问题标题】:Promise.then() firing on SequelizeUniqueConstraintErrorPromise.then() 在 SequelizeUniqueConstraintError 上触发
【发布时间】:2020-07-14 06:05:47
【问题描述】:

我对 promises 和 Sequelize 有点陌生。我正在尝试使用约束将新用户插入我的 SQLite 数据库。在User-model 中,我已将email-property 标记为unique,但是当不满足此约束时,.then()-block 内的代码仍会执行。

代码:

User.create({
   email: uname,
   password: psw
})
   .then(console.log('success'))
   .catch((err) => { console.log(err); });

输出:

Success
Executing (default): INSERT INTO `users` ...
{ SequelizeUniqueConstraintError: Validation Error ... }

当然不会向数据库中添加任何条目。

预期输出(插入唯一值时):

Executing (default): INSERT INTO `users` ...
success

预期输出(插入重复值时):

Executing (default): INSERT INTO `users` ...
{ SequelizeUniqueConstraintError: Validation Error ... }

非常欢迎任何帮助,谢谢!

【问题讨论】:

    标签: node.js sqlite sequelize.js


    【解决方案1】:

    我现在明白你的错误了:

    User.create({
       email: uname,
       password: psw
    })
       .then(console.log('success'))
       .catch((err) => { console.log(err); });
    

    您在这里所做的是,不是将函数传递给 then(),而是 执行一个函数。当然会运行 :D 改成这样:

    User.create({
       email: uname,
       password: psw
    })
       .then(()=>{console.log('success')})
       .catch((err) => { console.log(err); });
    

    【讨论】:

    • 哈哈,我现在感觉自己像个白痴。非常感谢你,你是一个救生员!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    相关资源
    最近更新 更多