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.");
});

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

감사합니다.

  • 2016년 06월 13일에 수정됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.
  • 2016년 03월 16일에 작성됨
    웹 사이트 공부 중입니다. 많은 도움 주시면 좋아요.

조회수 508


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으로 초기화 하는 작업은 별도로 하셔야 합니다.

  • 2016년 03월 16일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close