2015-05-27 48 views
7

有沒有辦法訪問HTTP請求發送到Node.js服務器的時間戳?在Node.js中訪問HTTP請求的時間戳

喜歡的東西:

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

我嘗試了幾件事情,並且已經打印出整個REQ對象到控制檯,但沒有找到一個時間戳屬性。我是否必須手動發送時間戳?我認爲它已經是HTTP請求的一部分。

+0

好奇,爲什麼不在服務器端執行'new Date()'。我知道你可能希望他們「發送」它時,但知道你什麼時候得到它並且任何人都可以在HTTP請求中欺騙日期可能是有價值的 – FrickeFresh

回答

-5

日期request headers可用於檢索時間戳。

如果您使用Express-4.x,則可以使用req.get(headerName)來獲取它。

如果您使用的是節點http模塊,請嘗試執行console.dir(req.headers)。如果它可用,你可以從req.headers["Date"]

這一切都是有效的,只要你的時間戳從客戶端跨網絡發送。還要檢查請求(比如說Chrome開發工具網絡)並檢查所有頭文件的發送情況。

+0

已經嘗試過'req.headers'。它沒有列出「Date」當我嘗試'req.headers [「Date」]'時,它返回「undefined」。所以我猜這不是正確的HTTP請求發送? – Mormul

+0

從瀏覽器中檢查一次。轉到開發工具(理想情況下按F12),轉到網絡選項卡(在Chrome中,其他瀏覽器找到類似的選項卡),然後點擊url。你的需求應該被列出。檢查標題。 –

+0

我不明白他爲什麼不會有任何理由。客戶端發送請求,服務器服務器服務請求並對此作出響應。我認爲檢查客戶端(在本例中是[瀏覽器](http://en.wikipedia.org/wiki/Web_browser))是否已經通過網絡發送是完全正確的。有關[客戶端 - 服務器體系結構](http://en.wikipedia.org/wiki/Client%E2%80%93server_model) –