2015-05-27 6 views
7

Esiste un modo per accedere al timestamp di quando una richiesta HTTP viene inviata a un server Node.js?Accesso al timestamp di una richiesta HTTP in Node.js

Qualcosa di simile:

app.post('', function (req, res) { 
    console.log(req.date); //or 
    console.log(req.timestamp); 
} 

ho provato diverse cose e già stampato l'intero oggetto req alla console, ma non ha trovato un attributo di data e ora. Devo inviare il timestamp manualmente? Ho pensato che sia già parte di una richiesta HTTP.

+0

Curioso perché non fare solo 'new Date()' sul lato server. So che potresti volerlo quando "lo hanno inviato" ma può essere prezioso sapere quando lo hai effettivamente ricevuto e chiunque può spoofare la data in una richiesta HTTP – FrickeFresh

risposta

-5

C'è Data in request headers che può essere utilizzato per recuperare il timestamp.

Se si utilizza Express-4.x è possibile utilizzare req.get(headerName) per ottenerlo.

Se si utilizza il modulo nodo http, provare a eseguire console.dir(req.headers). Se disponibile, è possibile scaricarlo da req.headers["Date"]

Questo è tutto a condizione che il timestamp venga inviato attraverso la rete dal lato client. Controlla anche la richiesta (diciamo Chrome Dev tool Network) e controlla quali sono le intestazioni inviate.

+0

Già provato "req.headers". Non elenca "Date" Quando provo 'req.headers [" Date "]', restituisce "undefined". Quindi immagino che non sia stato inviato con la richiesta HTTP giusto? – Mormul

+0

Controllalo una volta dal tuo browser. Vai agli strumenti di sviluppo (Idealmente premendo F12), vai alla scheda di rete (in chrome, per gli altri browser trovi la scheda simile) quindi premi l'url. Il tuo req dovrebbe essere elencato. Controlla le intestazioni. –

+0

Non vedo alcun motivo per cui non volesse. La richiesta inviata dal client, il server server serve la richiesta e risponde a tale richiesta. Penso che sia perfettamente giusto controllare quale client (in questo caso [browser] (http://en.wikipedia.org/wiki/Web_browser)) ha inviato attraverso la rete. Per ulteriori letture su [architettura client-server] (http://en.wikipedia.org/wiki/Client%E2%80%93server_model) –