1

我将 Node.js 与 Express.js 和 Redis 一起使用。我正在通过增加 redis 键来记录站点组件的正常运行时间。我想uptimerecord:tracker在当前正常运行时间>当前正常运行时间记录后更新密钥,但不知何故它没有更新它并评估 uptimeTracker > uptimeRecordTrackerfalse即使它是真的。

有什么我想念的吗?

谢谢!

  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
4

1 回答 1

2

实际上,您似乎在比较字符串而不是整数:

"213" > "99" == false

尽管

213 > 99 == true

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

parseInt(uptimeTracker) > parseInt(uptimeRecordTracker)
于 2013-03-18T23:23:01.880 回答