2016-05-06 19 views
1

Ich schreibe eine erholsame API in Nodejs mit Expressjs als Framework. Ich habe den folgenden CodeLesen Etag Wert vor dem Senden Antwort in express.js

.get(function(request,response) 
{ 
    Production.find(function(err, prods) { 

     if (err) 
      response.send(400, {success:false, error: err}); 
     response.send(200, prods); 

     console.log(response._headers); 

    }); 
}); 

Jetzt möchte ich die Header der Antwort lesen, bevor Sie tatsächlich die Antwort senden. Ich möchte das so, dass ich den ETag-Wert lesen kann und damit überprüfe, ob ich die Daten nochmal senden soll oder nicht.

Irgendwelche Ideen bitte?

Dank

+0

Haben Sie das Knotenmodul [etag] (https://www.npmjs.com/package/etag) gesucht? Es gibt viele Module in npm für etag. – randominstanceOfLivingThing

+0

Danke, ich werde es untersuchen – Kelly

Antwort

0

req.stale sein könnte, was Sie verwenden möchten. Hier sind die Dokumente für req.stale und req.fresh.

Beide Methoden geben einen Booleschen Wert true oder false zurück, den Sie in Ihrer Logik verwenden können.

app.get('/', (req, res, next) => { 
    if (req.stale) return res.sendStatus(304); 

    res.render('your/template'); // or .send() or whatever sauce you choose 
}); 
+0

Sie wollen nach frischen statt abgestanden, nach dem neuen Paket docs (https://www.npmjs.com/package/fresh) überprüfen möchten. Neue Anfragen sollten 304, veraltete erhalten gerendert werden. – cweber105