0

私は、MongoDBデータベースから読み込むNode REST APIを作成する際に問題に遭遇しています(この場合はMongooseではなくMongodbネイティブを使用しています)。私はローカルファイルから読み込んでいるタイムスタンプの後にすべての結果を照会しようとしています。その後、最上位のイベントのタイムスタンプを取得し、ファイルに保存します(目標は、このメソッドが最後のクエリから最新のイベントを返す必要があるということです)。MongoDBネイティブNode.jsの問題

これは、これまでの私のコードです:

router.get("/latestevent", function(req, res, next) { 
    db.collection("events", function(err, collection){ 
      var contents = new Date(fs2.readFileSync('latesttimeevent','utf8')).toISOString(); 
      console.log("Newest previous date is: " + contents); 
      var date = String(contents); 
      collection.find({event: {$regex: '00FF0004'},eventtime: {'$gte':new Date(date)}}).sort({$natural:-1}).limit(10).toArray(function(err, data) 
      { 
        fs.writeFile("latesttimeevent",data[0].eventtime, function(err) 
        { 
          if(err) 
          { 
            return console.log(err); 
          } 
          console.log("Cell File was saved"); 
        }); 
        res.json(data); 
      }) 
    }); 
}); 

はconsole.log( "最新以前の日付がある:" +コンテンツ)この形式で日付を返します:2017-12-27T18:57:37.000Z。その日付を関数new Date(date) - > new Date( "2017-12-27T18:57:37.000Z")に接続すると、REST呼び出し時に情報を正常に取得できます。しかし、今のように、Postmanを使ってGET呼び出しをしようとすると、それはちょうどバッファ(時には最初の試みではうまくいくかもしれませんが、その後バッファされます)。

私がここで間違っていることについてのアイデアはありますか?私は、新しい日付(...)を別の文字列オプションで多く使いこなし、新しい日付を削除し、toISOString()などを追加しましたが、成功しませんでした。

ありがとうございます!

答えて

0

私は、サーバー側ではなくクライアント側であると思います。

Cache-Control: no-cache, no-store, must-revalidate 

また、あなたがセット最大エージングキャッシュを試すことができます:元、キャッシュなしに(あなたのクライアントのリクエストヘッダを取得します)私はポストマンに慣れていないんだけど、私のポイントは、あなたがキャッシュ制御を設定する必要があることですヘッダPARAMも、

max-age=0 

(詳細:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control