2017-02-28 7 views
-3

は時々私のNodeJSコンソールは私にこれらのエラーを与えているが、私はかなりそれらを理解していない:それは好き ImageNodeJSが時々変わった! (エラー)

は非常に稀にしか起こらない、それは常に発生しません。ほとんどの場合、完璧に動作しますが、上記のエラーが返されることがあります。私はちょっと失ったんだよ。 (私はエラーが発生したと思います)

CODE:

if(canPlayersBet == '1') { 
    if((usersCr[user.steamid] !== undefined) && (usersCr[user.steamid] == CRbr)) { 
     socket.emit('message', { 
      type: 'error', 
      enable: true, 
      error: 'You have already joined the crash.' 
     }); 
     return; 
    } 
    if((m.amount < minbet) || (m.amount > maxbet)) { 
     socket.emit('message', { 
      type: 'error', 
      enable: true, 
      error: 'Invalid bet amount ['+minbet/1000+'-'+maxbet/1000+'].' 
     }); 
     return; 
    } 
    if(/(a|b|c|d|e|f|g|h|j|i|k|l|m|n|o|p|q|r|s|t|v|u|w|x|y|z)/.exec(m.amount)) { 
     socket.emit('message', { 
      type: 'error', 
      enable: true, 
      error: 'Invalid bet amount.' 

     }); 
     return; 
    } 
    if(crashState != 'STARTING' && usersCr[user.steamid] != CRbr) { 
     socket.emit('message', { 
      type: 'error', 
      enable: true, 
      error: 'The game have been already started!' 
     }); 
     return; 
    } 

    var start_time = new Date(); 
     query('SELECT `balance` FROM `users` WHERE `steamid` = '+pool.escape(user.steamid), function(err, row) { 
      if((err) || (!row.length)) { 
       logger.error('Failed to find DB'); 
       logger.debug(err); 
       socket.emit('message', { 
        type: 'error', 
        enable: true, 
        error: 'You are not DB' 
       }); 
       return; 
      } 
      if(row[0].balance >= m.amount) {   
       query('UPDATE `users` SET `balance` = `balance` - '+parseInt(m.amount)+' WHERE `steamid` = '+pool.escape(user.steamid), function(err2, row2) { 
        if(err2) { 
         logger.error('Error in withdraw'); 
         logger.debug(err); 
         socket.emit('message', { 
          type: 'error', 
          enable: true, 
          error: 'You dont have enough points' 
         }); 
         return; 
        } 
        query('INSERT INTO `crbets` SET `user` = '+pool.escape(user.steamid)+', `amount` = '+pool.escape(m.amount)+', `autoCashout` = '+pool.escape(m.autoCash), function(err3, row3) { 
         if(err3) { 
          logger.error('Error in DB'); 
          logger.debug(err); 
          return; 
         } 
         var end = new Date(); 
         if(usersCr[user.steamid] === undefined) { 
          usersCr[user.steamid] = 1; 
         } 
         if(CRusersAmount[user.steamid] === undefined) { 
          CRusersAmount[user.steamid] = { 
           'amount': m.amount, 
           'autoCashout': m.autoCash 
          }; 
         } 
         CRusersAmount[user.steamid]['amount'] += parseInt(m.amount); 
         socket.emit('message', { 
          type: 'crbetconfirm', 
          bet: { 
           betid: row3.insertId, 
           amount: m.amount, 
           autoCashout: m.autoCash 
          }, 
          balance: row[0].balance-m.amount, 
          mybr: usersCr[user.steamid], 
          br: CRbr, 
          exec: (end.getTime()-start_time.getTime()).toFixed(3) 
         }); 
         users[user.steamid].balance = row[0].balance-m.amount; 
         io.sockets.emit('message', { 
          type: 'crbet', 
          bet: { 
           amount: m.amount, 
           autoCashout: m.autoCash, 
           betid: row3.insertId, 
           icon: user.avatar, 
           name: user.name, 
           user: user.steamid 
          } 
         }); 
         CRcurrentBets.push({ 
          autoCashout: m.autoCash, 
          amount: m.amount, 
          betid: row3.insertId, 
          icon: user.avatar, 
          name: user.name, 
          user: user.steamid, 
          won: '0' 
         }); 
         socket.emit('message', { 
          type: 'setIsPlaying' 
         }); 
         totalBet = totalBet+m.amount; 
         logger.debug('CRBet confirmed #'+row3.insertId+' | Amount: '+m.amount+' | AutoCashout: '+m.autoCash+' | User: '+pool.escape(user.steamid)); 
         checkTimer(); 
        }) 
       }); 
      } else { 
       socket.emit('message', { 
        type: 'error', 
        enable: true, 
        error: 'Error: You dont have any money.' 
       }); 
      } 
     }); 
}else { 
    socket.emit('message', { 
     type: 'error', 
     enable: true, 
     error: 'Error: You cannot bet, because the bet is offline.' 
    }); 
} 
+0

「1166」の行は何ですか?それを持って、あなたのサンプル中の2行がありますuser.steamid –

+0

、それは\t \t \t \t \t \t \t \tユーザーです。また、これらの行のいずれも 'balance'を参照していません。それは正しいとは言えません。 –

+0

:後半の応答のため申し訳ありません –

答えて

0

私の推測では、次の行では、障害

users[user.steamid].balance = row[0].balance-m.amount; 

などです。​​はundefinedです。

+0

ユーザーを挿入する==未定義であれば、その場合はジョブを返しますか? –

+0

または、その条件に基づいてその行を実行しないでください。しかし、バランスからの撤退は確かに理由があり、「ユーザー」にエントリがないという根本的な原因が(実際問題であれば)分析されなければならない。 – imhotap

関連する問題