node.js 에서 방문자 수 기능을 구현하려고 합니다.
조회수 3006회
웹사이트를 구현 중입니다.
웹사이트 메인화면에 [방문자 수] 를 표시하려고 합니다.
보통 어떤 기준으로 방문자 수를 카운트 하는지요? ex) 방문자 IP기준 하루 카운트, 방문자 ID기준 하루 카운트 등
1.에 따라 구현하는 방법이 궁금합니다. DB까지 가야하는지, 쿠키? 세션? 까지 다루어야 하는지...
이런 예제를 발견했는데 아래 방법은 좋은 방법인가요?
var count = 0;
app.get('/', function(req, res, next) {
count++;
res.send();
next();
});
app.get('/count', function(req, res) {
res.send("" + count + " visitors.");
});
아직 아는 정보가 없어 질문이 모호할 수 있는 점 죄송합니다.
감사합니다.
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으로 초기화 하는 작업은 별도로 하셔야 합니다.
댓글 입력