문제가 생겼다.
우선, 접속시간 비교 후 20회 초기화 시키는 과정에서 내가 저장한 시간이 한국 시간이 아니었다.
이는 예전에 게시물 기능구현을 할 때 겪었던 시행착오여서 금방 해결할 수 있었다.
passport.deserializeUser(async (user, done) => {
try {
let result = await db.collection('user').findOne({ _id: new ObjectId(user.id) });
if (result) {
delete result.password;
const timeZone = 'Asia/Seoul';
let today = new Date( new Date().toLocaleDateString('ko-KR', { timeZone }));
let recentLogin = result.recent_login;
if (recentLogin != today.getDate()) {
await db.collection('user').updateOne(
{ _id: new ObjectId(user.id) },
{ $set: { shooting_count: 20 } }
);
}
await db.collection('user').updateOne(
{ _id: new ObjectId(user.id) },
{ $set: { recent_login: today.getDate() } }
);
}
const timeZone = 'Asia/Seoul';
let today = new Date( new Date().toLocaleDateString('ko-KR', { timeZone }));
기존에 today 에 할당되었었던 new Date().toLocaleDateString('ko-KR', { timeZone })
값은 문자열이기 때문에 new Date 로 한 번 더 묶어서 객체로 바꾸고 그 뒤에.getDate() 를 붙여서 날짜만 가져올 수 있었다.
두 번째 문제는 남은 기회가 깎여서 0이 된 후에 로그아웃 후 다시 로그인 해보면 이상하게 남은 횟수가 일정하지 않은 수로 어느 정도 롤백 되는 문제이다.
예상으로는 데이터베이스로 들어가는 과정에서 무언가 문제가 있는게 아닐까 싶다.
'Project > 축구모임 홈페이지개발' 카테고리의 다른 글
[축구모임 홈페이지개발] 04/06 개발일지 Nodejs / 업데이트 공지 탭 활성화 (0) | 2024.04.07 |
---|---|
[축구모임 홈페이지개발] 03/27 개발일지 Nodejs / 승부차기 게임 구현 3 (불리언 타입 함수) (0) | 2024.03.28 |
[축구모임 홈페이지개발] 03/25 개발일지 Nodejs / 승부차기게임 구현 (0) | 2024.03.26 |
[축구모임 홈페이지개발] 03/23 개발일지 Nodejs / 게시물 댓글 개수 표시 (0) | 2024.03.23 |
[축구모임 홈페이지개발] 03/18 출시 이후 점검 (0) | 2024.03.18 |