0

我正在使用 node.js (express) 和 mysql felix 构建服务器。

我的问题是有时我有一个会返回重复错误的查询。

我已经尝试了所有方法来尝试在没有运气的情况下捕获此错误,程序崩溃了。

这是我的代码:

 this.addReservation = function(req, res, next) {
      var json = JSON.parse(req.body['reservation']);
      var post = {user1: json.player1, user2: json.player2, courtId: json.id, hour: json.hour, date: json.date};
      var giveback = {u1_first: req.user.firstName, u1_last: req.user.lastName, user1: json.player1, user2: json.player2};

      connection.query('insert into ordering set ?', post, function(err, result){
          if (err){ 
                throw err;
                return res.send(500);
            }
            else 
                return res.json({res: giveback})
                //return res.send(200);            
      });   
  };

现在我尝试用 try and catch 包装这个查询。没有帮助。

我试图输入这一行:

connection.on('error', function() {console.log();});也没有帮助。

我试着把这条线放在其他地方仍然没有帮助。

在我的控制台中抛出的错误是:Error: ER_DUP_ENTRY

我究竟做错了什么?我应该在不同于“错误”的东西上使用“开”吗?

唯一对我有帮助的是:

process.on('uncaughtException', function(err) {
    // handle the error safely
    console.log(err);
});

但这非常糟糕,因为我知道造成的错误并且我希望处理它,所以这对我来说是一个非常糟糕的解决方案。

请帮助我,谢谢。我正在使用 mysql felix 库。

4

1 回答 1

1
this.addReservation = function(req, res, next) {
  var json = JSON.parse(req.body['reservation']);
  var post = {user1: json.player1, user2: json.player2, courtId: json.id, hour: json.hour, date: json.date};
  var giveback = {u1_first: req.user.firstName, u1_last: req.user.lastName, user1: json.player1, user2: json.player2};

  connection.query('insert into ordering set ?', post, function(err, result){
      if (err){ 

            console.log('exact name of error thrown '+err);
            return res.send(500);
        }
        else 
            return res.json({res: giveback})
            //return res.send(200);            
  });   
};
于 2013-08-23T09:00:39.177 回答