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

nfeuvbwi  于 2023-05-28  发布在  Node.js
关注(0)|答案(2)|浏览(300)

有没有一种方法可以访问HTTP请求发送到Node.js服务器的时间戳?
类似于:

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

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

vyu0f0g1

vyu0f0g11#

使用Date.now()
在console.log上进行测试,每次获取请求时,输出的时间戳都不一样。
获取时间戳

const timestamp = Date.now();
console.log(Math.floor(timestamp/1000));
//expected output: 1685106503
b09cbbtk

b09cbbtk2#

request headers中有Date,可用于获取时间戳。
如果您使用Express-4.x,则可以使用req.get(headerName)来获取它。
如果你使用的是node http模块,尝试使用console.dir(req.headers)。如果可用,可以从req.headers["Date"]获取
这一切都是有效的提供您的时间戳是通过网络从客户端发送。还要检查请求(比如说Chrome开发工具网络),并检查发送的所有头。

相关问题