比较两个值的结果是false而不是true

我正在使用Express.js和Redis的Node.js。 我通过增加一个redis键来logging站点组件的正常运行时间。 我想更新uptimerecord:tracker键一旦当前正常运行时间>当前正常运行时间logging,但不知何故它不更新它,并评估uptimeTracker> uptimeRecordTracker与false即使它是真实的。

有什么我失踪?

谢谢!

  db.get("uptime:tracker", function(err, uptimeTracker) { db.get("uptimerecord:tracker", function(err, uptimeRecordTracker) { console.log("[Stats] uptimeTracker: " + uptimeTracker) console.log("[Stats] uptimeRecordTracker: " + uptimeRecordTracker) console.log("[Stats] Compare: " + (uptimeTracker > uptimeRecordTracker)) if(uptimeTracker > uptimeRecordTracker) { console.log("[Stats] Tracker Records updated") db.set('uptimerecord:tracker', uptimeTracker) } }); }); 

控制台输出:

 [Stats] uptimeTracker: 213 [Stats] uptimeRecordTracker: 99 [Stats] Compare: false 

它看起来像你比较string而不是整数,事实上:

 "213" > "99" == false 

 213 > 99 == true 

尝试在比较之前将它们转换为整数:

 parseInt(uptimeTracker) > parseInt(uptimeRecordTracker)