Javascript 如何处理错误:ER_DUP_条目:节点中的重复条目

Javascript 如何处理错误:ER_DUP_条目:节点中的重复条目,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我在mysql数据库中有一个唯一的列,当出现重复条目时,它会给出错误:ER_DUP_entry:duplicate entry如何处理来自nodejs的错误首先您必须通过选择查询来检查重复数据。然后,如果结果长度不是零,则编写插入查询 router.post('/process', function(req, res, next) { var mysql= require('mysql'); var connection=mysql.createConnection({ host:'l

我在mysql数据库中有一个唯一的列,当出现重复条目时,它会给出错误:ER_DUP_entry:duplicate entry如何处理来自nodejs的错误首先您必须通过选择查询来检查重复数据。然后,如果结果长度不是零,则编写插入查询

router.post('/process', function(req, res, next) {

var mysql= require('mysql');

var connection=mysql.createConnection({

  host:'localhost',
  user:'root',
  password:'',
  database:'user',
  multipleStatements: true
});

connection.connect(function(err){

       if(err)
       {
          throw err;
       }
      else
       {
          console.log("Connected");

          var name= req.body.name;
          console.log(name);
          var email=req.body.email;
          console.log(email);
          var password=req.body.password;

          if (name=="" || email=="" || password=="") {
            res.render('process', {flag: false, condition: false,fail:false});     
          }

          else
          {
              var sql="SELECT * from user where name='"+name+"'";

              connection.query(sql, function(err,result){

                   if(result.length!=0)
                   {
                      res.render('process', {name:name, condition:false, fail:false});
                   }

                  else
                  {
                    var sql="INSERT INTO user VALUES('','"+name+"','"+email+"','"+password+"')";
                    connection.query(sql, function(err,result){

                    res.render('process', {name:name, flag: true, condition: true});
                  });   
                  }


              });
          }
       }

});

});

将保存放到try块并捕获所有错误。添加重复项的特定检查,并将其余项作为默认项处理

try {
    return await this.userProfilesRepository.save(userProfile);
} catch (err) {
   if (err.code === 'ER_DUP_ENTRY') {
       //handleHttpErrors(SYSTEM_ERRORS.USER_ALREADY_EXISTS);
   } else {
       //handleHttpErrors(err.message);
    }
}

如果您正在使用sequelize,这将有助于:

try {
        //here you try to add something in your database;
    } catch (error) {
       if (error.parent.code === 'ER_DUP_ENTRY') {
           //here you can handle this error;
       } else {
           //here you can handle other errors;
        }
    }

如何处理这些错误消息?我的最终目标是检查表中是否已经存在电子邮件id如果存在发送状态为“电子邮件id已经存在”。如果您收到ER_DUP_条目消息,并且您知道唯一可能违反的唯一密钥是电子邮件地址,然后返回您在注释中描述的消息。@Shadow如果表中有两个唯一的列怎么办?@SarojSasmal MySQL的默认错误消息也会返回违反的唯一/主键名称。