sails.js mySQL ORM错误捕获中的逻辑错误

时间:2014-06-19 20:59:50

标签: mysql node.js sails.js waterline

在我的用户模型中,我有:

module.exports = {

    attributes: {

        username: {
            type: 'string',
            unique: true,
            required: true,
            minLength: 5,
            maxLength: 15,          
            alphanumeric: true
        }
      }
}

现在,当我尝试插入重复的用户名时,我收到以下消息:

  

mySQL ORM中的逻辑错误。

     

{[错误:ER_DUP_ENTRY:重复输入'用户名'用于密钥'用户名']   代码:' ER   _DUP_ENTRY',index:0}

现在我的问题是如何捕获此错误,以便向用户显示自定义错误消息?我的创作是这样的:

User.create({
    username: "username"
}).done(function(err, data){
    if(err){
               //the error isn't here
    }
});

2 个答案:

答案 0 :(得分:0)

我对完成回调并不熟悉,但您可以尝试使用promise then处理程序

User.create({
    username: "username"
})
.then(function(data){
    console.log("Success", data);
},function(err){
    console.log("My error here", err);
});

答案 1 :(得分:0)

User.create({
    username: "username"
}).exec(function(err, data){
    if(err){
           //the error isn't here
    }
    // data process
});