想要从后续 ORM 检查异常或失败原因

Ani*_*Ani 2 error-handling node.js express sequelize.js

我想要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');
    }
}));
Run Code Online (Sandbox Code Playgroud)

谢谢你们。

Tom*_*m L 5

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');
}));
Run Code Online (Sandbox Code Playgroud)

如果您想使用 try...catch 版本,则无法累积 catch 块,因此您可能需要检查

if (err instanceof Sequelize.UniqueConstraintError)
Run Code Online (Sandbox Code Playgroud)