Javascript 如何计算在Node Js中打开特定url的唯一未授权用户数?
我正在使用ExpressJs和MongoDB。我想显示有多少未经授权的唯一用户打开了特定的事件页面Javascript 如何计算在Node Js中打开特定url的唯一未授权用户数?,javascript,node.js,mongodb,mongoose,express,Javascript,Node.js,Mongodb,Mongoose,Express,我正在使用ExpressJs和MongoDB。我想显示有多少未经授权的唯一用户打开了特定的事件页面 我应该如何实现这个请求计数器 检查IP地址或在cookie中添加一些标记 您可以使用a并执行以下操作: app.use(express.cookieParser()); app.use(function(req, res, next) { req.cookies['track_id'] ||= require('connect').utils.uid(32); next(); }); 现
我应该如何实现这个请求计数器
检查IP地址或在cookie中添加一些标记 您可以使用a并执行以下操作:
app.use(express.cookieParser());
app.use(function(req, res, next) {
req.cookies['track_id'] ||= require('connect').utils.uid(32);
next();
});
现在,您可以在每个站点上推送cookie的id:
app.use(function(req, res, next) {
if(!req.isAuthenticated()){
statistics.findAndModify(
{_id: req.url},
{},
{$addToSet: {ids: req.cookies['track_id']}},
{upsert:true}
);
}
next();
});
然后可以在mongodb数据库中进行查询。如果为ids
字段编制索引,则可以查询一个id,并查看他们访问了哪些URL。访问者的数量是数组的长度
如果将$addToSet
替换为$push
,您还将跟踪站点上的用户两次
当然,当人们删除他们的cookie时,这一切都会分崩离析^^
请注意,这是未经测试的,我只是边写边写。我还假设您使用了普通的
节点mongodb native
,DB查询可能会因您而异。Redis也是一个很好的解决方案。这样的问题(如果是建设性的)将受益于JavaScript标记。我知道时间已经晚了,但我还想指出@Stefano_Sanfilippo答案:供饼干使用。