1

Express.jsとRedisでNode.jsを使用しています。redisキーをインクリメントして、サイトコンポーネントの稼働時間を記録しています。uptimerecord:tracker現在の稼働時間>現在の稼働時間レコードになったらキーを更新したいのですが、どういうわけかそれが更新されておらず、uptimeTracker>uptimeRecordTrackerがfalsetrueであるにもかかわらず評価されていません。

足りないものはありますか?

ありがとう!

  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 に答える