比较两个值的结果是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)