2013-08-23 27 views
0

我正在用node.js(express)和mysql felix構建一個服務器。如何找出mysql中引發錯誤的確切名稱node.js

我的問題是,有時我有一個查詢將返回一個重複的錯誤。

我已經嘗試了一切,試圖抓住這個錯誤,但沒有運氣,程序崩潰。

這是我的代碼:

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和catch。沒有幫助。

我試圖進入該行:

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

我試圖把這條線在其他地方仍然沒有幫助。

在我的控制檯中拋出的錯誤是:Error: ER_DUP_ENTRY

我在做什麼錯?我應該在「錯誤」之外使用「on」嗎?

,只有一件事情讓我的是:

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

但是這是非常糟糕的,因爲我不知道這是造成錯誤,我希望來對付它,所以這是對我來說是非常糟糕的解決方案。

請幫助我謝謝。我正在使用mysql felix庫。

+0

檢查https://github.com/felixge/node-mysql#error-handling connection.query( 'USE name_of_db_that_does_not_exist',函數(ERR,行){ 的console.log(err.code) ; //'ER_BAD_DB_ERROR' }); – Damodaran

+0

我已經閱讀過這篇文章,但是我仍然不明白爲什麼我的程序會創作 – lobengula3rd

回答

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);    
    }); 
}; 
相關問題