0

Ich habe ein Problem beim Erstellen einer Node REST API, die aus einer MongoDB-Datenbank liest (Ich verwende Mongodb-native, nicht in diesem Fall Mongoose). Ich versuche nach einem bestimmten Zeitstempel, den ich aus einer lokalen Datei lese, nach allen Ergebnissen zu suchen. Ich erhalte dann den Zeitstempel des obersten Ereignisses und speichere es in der Datei (das Ziel ist, dass diese Methode die letzten Ereignisse von der letzten Abfrage zurückgibt, wenn das sinnvoll ist).MongoDB Native Node.js Problem

Dies ist mein Code so weit:

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 ("Newest vorherige Datum ist:" + Inhalt) gibt ein Datum in diesem Format: 2017-12-27T18: 57: 37.000Z. Wenn ich dieses Datum an die Funktion neues Datum (Datum) -> neues Datum ("2017-12-27T18: 57: 37.000Z") anschließe, kann ich die Information erfolgreich erhalten, wenn ich REST-Anrufe mache. Wie auch immer, beim Versuch, einen GET-Aufruf mit Postman zu machen, puffert es gerade (manchmal wird es beim ersten Versuch funktionieren, aber dann puffert es danach).

Irgendeine Idee, was ich hier falsch mache? Ich habe versucht, mit dem neuen Date (...) viel mit verschiedenen String-Optionen herumzuspielen, neues Date zu entfernen, zuISOString() usw. hinzuzufügen, aber keinen Erfolg.

Danke!

Antwort

0

Ich denke, der Punkt ist auf der Clientseite, nicht Server. Ich bin nicht vertraut mit Postman, aber mein Punkt ist, dass Sie Cache-Steuerung gesetzt (für die Client-Request-Header Get) auf No-Cache, ex:

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

Auch können Sie max-age-Cache gesetzt versuchen Kopf param als auch,

max-age=0 

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