访问Node.js中HTTP请求的时间戳

访问Node.js中HTTP请求的时间戳,node.js,express,request,timestamp,Node.js,Express,Request,Timestamp,当HTTP请求发送到Node.js服务器时,是否有方法访问时间戳 比如: app.post('', function (req, res) { console.log(req.date); //or console.log(req.timestamp); } 我尝试了几种方法,并已将整个req对象打印到控制台,但没有找到时间戳属性。我必须手动发送时间戳吗?我想它已经是HTTP请求的一部分了。中有日期可以用来检索时间戳 如果您使用的是Express-4.x,您可以使用req.

当HTTP请求发送到Node.js服务器时,是否有方法访问时间戳

比如:

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

我尝试了几种方法,并已将整个req对象打印到控制台,但没有找到时间戳属性。我必须手动发送时间戳吗?我想它已经是HTTP请求的一部分了。

中有日期可以用来检索时间戳

如果您使用的是Express-4.x,您可以使用
req.get(headerName)
来获取它

如果您使用的是节点http模块,请尝试执行
console.dir(req.headers)
。如果可用,您可以从
req.headers[“Date”]


只要时间戳是从客户端通过网络发送的,这些都是有效的。还要检查请求(比如Chrome开发工具网络)并检查发送的所有头。

已尝试
req.headers
。当我尝试
req.headers[“Date”]
时,它没有列出“Date”,而是返回“undefined”。所以我猜它不是和HTTP请求一起发送的,对吗?请在浏览器中检查一下。转到“开发工具”(理想情况下按F12),转到“网络”选项卡(在chrome中,对于其他浏览器,请查找类似选项卡),然后点击url。您的请求应该被列出。检查标题,我看不出他为什么不这么做。客户端发送请求,服务器服务请求并响应该请求。我认为检查客户端(在本例中)通过网络发送的内容是完全正确的。对于多次读取,req未附加发送时间戳。OP需要在服务器上测量side@CharlesW. 我相信你的意思是“时间戳随请求附上”。如果是这样的话,你是对的,请阅读最后一段,上面提到过。奇怪的是,为什么不在服务器端执行
newdate()
。我知道你可能想知道他们何时“发送”它,但知道你何时真正收到它是很有价值的,而且任何人都可以在HTTP请求中伪造日期