ExpressJs と MongoDB を使用しています。許可されていないユニーク ユーザーが特定のイベント ページを開いた数を表示したいと考えています。
このリクエストカウンターをどのように実装すればよいですか?
IP アドレスを確認するか、Cookie にマークを追加してください...
1373 次
1 に答える
2
Cookieを使用して、次のようなことができます。
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
、1 つの ID を照会して、アクセスした URL も確認できます。訪問者数は配列の長さです。
you に置き換える$addToSet
と$push
、サイト上のユーザーも 2 回追跡されます。
もちろん、人々がクッキーを削除すると、それはすべて崩壊します ^^
これはテストされていないことに注意してください。また、プレーンを使用したと仮定しましたがnode-mongodb-native
、DB クエリは場合によって異なる場合があります。Redis もこれに適したソリューションです。
于 2012-11-02T10:29:42.993 に答える