node.js 에서 방문자 수 기능을 구현하려고 합니다.

웹사이트를 구현 중입니다.

웹사이트 메인화면에 [방문자 수] 를 표시하려고 합니다.

  1. 보통 어떤 기준으로 방문자 수를 카운트 하는지요? ex) 방문자 IP기준 하루 카운트, 방문자 ID기준 하루 카운트 등

  2. 1.에 따라 구현하는 방법이 궁금합니다. DB까지 가야하는지, 쿠키? 세션? 까지 다루어야 하는지...

  3. 이런 예제를 발견했는데 아래 방법은 좋은 방법인가요?

var count = 0;
app.get('/', function(req, res, next) {
    count++;
    res.send();
    next();

});

app.get('/count', function(req, res) {
    res.send("" + count + " visitors.");
});

아직 아는 정보가 없어 질문이 모호할 수 있는 점 죄송합니다.

감사합니다.

1답변

  • 좋아요

    1

    싫어요
    채택취소하기

    올려주신 방법으로 하면 Page view기준 카운트라서 페이지를 리로드하면 계속 숫자가 올라갈꺼구요.

    가장 최근에 방문한 날짜를 쿠키에 넣어서 날짜가 바뀔때만 카운트를 하는 방법도 있습니다. 다음 코드를 참고하세요. cookie-session을 사용했어요.

    var cookieSession = require('cookie-session')
    var express = require('express')
    
    var app = express()
    
    var count =0;
    
    app.set('trust proxy', 1) // trust first proxy
    
    app.use(cookieSession({
      name: 'session',
      keys: ['key1', 'key2']
    }))
    
    app.use(function (req, res, next) {
        var date = new Date();
        var today=date.getYear()+" "+date.getMonth()+" "+date.getDate();
      // Update views
      console.log(req.session.lastVisit);
      if(req.session.lastVisit != today){
        req.session.lastVisit = today;
        count++;
      }
    
      // Write response
      res.end(count + 'visit')
    })
    
    app.listen(3000)
    

    참고로 매일 count를 0으로 초기화 하는 작업은 별도로 하셔야 합니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.