有沒有辦法訪問HTTP請求發送到Node.js服務器的時間戳?在Node.js中訪問HTTP請求的時間戳
喜歡的東西:
app.post('', function (req, res) {
console.log(req.date); //or
console.log(req.timestamp);
}
我嘗試了幾件事情,並且已經打印出整個REQ對象到控制檯,但沒有找到一個時間戳屬性。我是否必須手動發送時間戳?我認爲它已經是HTTP請求的一部分。
有沒有辦法訪問HTTP請求發送到Node.js服務器的時間戳?在Node.js中訪問HTTP請求的時間戳
喜歡的東西:
app.post('', function (req, res) {
console.log(req.date); //or
console.log(req.timestamp);
}
我嘗試了幾件事情,並且已經打印出整個REQ對象到控制檯,但沒有找到一個時間戳屬性。我是否必須手動發送時間戳?我認爲它已經是HTTP請求的一部分。
有日期在request headers可用於檢索時間戳。
如果您使用Express-4.x,則可以使用req.get(headerName)
來獲取它。
如果您使用的是節點http模塊,請嘗試執行console.dir(req.headers)
。如果它可用,你可以從req.headers["Date"]
這一切都是有效的,只要你的時間戳從客戶端跨網絡發送。還要檢查請求(比如說Chrome開發工具網絡)並檢查所有頭文件的發送情況。
已經嘗試過'req.headers'。它沒有列出「Date」當我嘗試'req.headers [「Date」]'時,它返回「undefined」。所以我猜這不是正確的HTTP請求發送? – Mormul
從瀏覽器中檢查一次。轉到開發工具(理想情況下按F12),轉到網絡選項卡(在Chrome中,其他瀏覽器找到類似的選項卡),然後點擊url。你的需求應該被列出。檢查標題。 –
我不明白他爲什麼不會有任何理由。客戶端發送請求,服務器服務器服務請求並對此作出響應。我認爲檢查客戶端(在本例中是[瀏覽器](http://en.wikipedia.org/wiki/Web_browser))是否已經通過網絡發送是完全正確的。有關[客戶端 - 服務器體系結構](http://en.wikipedia.org/wiki/Client%E2%80%93server_model) –
好奇,爲什麼不在服務器端執行'new Date()'。我知道你可能希望他們「發送」它時,但知道你什麼時候得到它並且任何人都可以在HTTP請求中欺騙日期可能是有價值的 – FrickeFresh