본문 바로가기
Project/축구모임 홈페이지개발

[축구모임 홈페이지개발] 12/24 개발일지 Nodejs / new Date() 함수로 한국시간 맞추기

by 한33 2023. 12. 25.

기존에 갖고있던 오류 중 하나가 공지사항을 작성하면 상세페이지에 시간까지 나오는 기능이 있는데,

아이폰으로 작성을 하면 그리니치 천문대 기준 시간으로 나오는 오류가 있었다.

 

그를 해결하기 위해서 

 

let Today = new Date().toLocaleDateString('ko-KR')

 

위처럼 뒤에 한국버전으로 통일을 시켜주니까 표기방법은 한국식으로 맞게 바뀌었는데,

여전히 아이폰에서 등록을 하면 여전히 시간이 9시간 이른 시간으로 나왔다.

 

그래서 알아본 바로는

 

  const timeZone = 'Asia/Seoul';

  let Today = new Date().toLocaleDateString('ko-KR', { timeZone });
  let Time =  new Date().toLocaleString('ko-KR', { timeZone });

 

다음처럼 안정적으로 서울의 시간을 표기할 수 있도록 코딩해주었다.

위와 같은 방법으로 안정적인 방법으로 항상 한국시간대로 고정해서 글을 작성할 수 있게 되었다.

 


 

회원가입시에 아무나 회원가입이 되지 않도록 하기 위해서 멤버코드 기능을 만들었다.

 

app.post('/register', async (req, res) => {
  const timeZone = 'Asia/Seoul';
  let Time =  new Date().toLocaleString('ko-KR', { timeZone });
  let 해시 = await bcrypt.hash(req.body.password, 10)

  if (req.body.memberCode == 'bigstarhan') {
    await db.collection('user').insertOne({
      userID: req.body.userID,
      username: req.body.username,
      password: 해시,
      time : Time
    })
    res.render('login', { Register_Message: '회원가입이 완료되었습니다.' });
  }
  else {
    res.render('register', { Member_Message: '멤버코드가 일치하지 않습니다.' });
  }

})

 

우선 멤버코드는 추후에 변경하겠지만 우선 bigstarhan 으로 만들었고, 멤버코드가 맞으면 mongoDB 에 user 데이터를 저장시키고, 아니면 멤버코드가 일치하지 않는다는 문구를 전달시킨다.

 

그런다음 

 

    <% if (typeof Member_Message !=='undefined' ) { %>
        <script>
            alert('<%= Member_Message %>');
        </script>
        <% } %>

 

다음과 같이 메세지가 전달되었을 때 alert 를 이용해서 팝업을 나타내게 했다.