Node.js:请求是唯一的吗?

时间:2018-03-14 14:43:45

标签: node.js

在node.js中,使用https-module和createserver时。当用户向httpsserver发出请求时,请求是唯一的还是不同的请求可以有相同的请求(id?)。如果它是唯一的,应该使用哪个属性?

1 个答案:

答案 0 :(得分:2)

http请求处理程序中的request参数是一个Javascript对象,每个参数都是唯一的。它们永远不会被重复使用。该对象记录在案here

node.js http库中没有请求ID。如果您想创建自己的请求ID,只需将符号指定为请求对象的属性即可自行完成。您可以选择要使用的任何属性名称,与现有属性不冲突。

由于这是一个不寻常的请求,我会问你为什么要这样做,因为可能有一个更好的方法来解决你的问题而不是尝试发出请求ID。如果你展示了你的实际代码以及你想要做的事情,我们可能会更具体地帮助你。

如果您使用的是Express,则可以使用以下某些中间件设置您自己的请求ID:

// set request ID
let reqCntr = 0;
app.use((req, res, next) => {
    req._localID = reqCntr++;
    next();
});

只需将此中间件放在任何其他希望使用该ID的请求处理程序之前。您可以选择任何非冲突的属性名称。我选择了_localID