【发布时间】:2021-01-28 05:49:44
【问题描述】:
我想在我的快速服务器中同时处理用户请求,并将来自它们的数据存储在 Mongo 数据库中。我已经准备好所有代码,但是,我正在努力寻找一种方法来为每个用户请求分配一个唯一的 id,以便我可以将每个用户的数据保存到 Mongo db。
下面是我的代码示例。
app.post("/page1", function(request,response) {
var ipAddress = request.connection.remoteAddress;
var name1 = request.body.name1;
MongooseModel.findOneAndUpdate({id: ipAddress},{name1:name1},
{upsert: false}, function() {});
response.redirect('/page2');
});
如您所见,我试图根据 IP 地址区分每个客户端请求。然后在上面贴出的代码之后直接运行下面的代码。
app.post("/page2", function(request,response) {
var ipAddress = request.connection.remoteAddress;
var name2 = request.body.name2;
MongooseModel.findOneAndUpdate({id: ipAddress},{name2:name2},
{upsert: false}, function() {});
response.redirect('/page3');
});
我再次尝试根据 IP 地址区分每个客户端请求。不幸的是,我上面的代码只有在两个(或更多)客户端不共享相同的网络连接时才有效。如果他们这样做,request.connection.remoteAddress 返回相同的值,我的数据库会混淆。
有没有聪明的办法解决这个问题?我知道大多数网站(例如 amazon.com)都必须克服这个问题,因为它们会收到数百万个客户请求,并且必须区分所有这些请求才能将数据存储在其数据库中。
【问题讨论】: