mongoDB를 활용하여 서버를 구축하고 있는 중에, timestamp 변수로 현재 작성한 시간이 들어가야 합니다.
구글링을 통해 Date.today() 를 활용하면 된다고 알아냈는데, 그 결과는 바로,,
다음과 같이 timestamp에 얼추 한국시간과 비슷한 다른 시간이 들어가게 되었습니다! 바로 mongoDB는 Date 형식으로 ISODate를 사용해서 생기는 문제입니다.
그렇다면 이를 해결하기 위해서는 한국시간을 넣어줘야겠쬬(?)!!
해결방안은 두 가지가 있습니다. 첫 번째는 String으로 넣어주는 것과, 두 번째는 직접 ISODate에 들어갈 값을 한국 시간으로 포맷팅 해주는 것이죠
첫 번째 해결책은 다음과 같습니다 :)
1. npm Install moment
2. npm install moment-timezone
3. var moment = require('moment');
4. moment.tz.setDefault("Asia/Seoul);
5. var date = moment().format('YYYY-MM-DD HH:mm:ss');
6. console.log(date);
그 결과!
postman을 통한 사용 확인 성공!
아직 ISODate형식으로 나오는 것이 보이시죠?
이것은 mongoDB schema 설정 시 데이터 타입을 String 으로 바꾼 후 다시 시도해보니
다음과 같이 지금 시간이 들어갈 수 있게 되었습니다.
스트링으로 처리하게 되면, 클라이언트쪽에서 시간을 조정하는 것도 필수적이겠죠?
두 번째 해결방안은 직접 데이터를 지정하여 넣는 것인데요, 저는 다음과 같은 함수를 구현하였습니다.
이렇게 지정한 후, 새로운 데이터를 insert할 때 getCurrentDate() 함수를 호출하여 리턴받은 Date를 넣게 되면, 한국 날짜가 뜨는 것을 볼 수 있습니다!
mongoDB는 ISODate형식으로 많은 함수를 제공하기 때문에, 두 번째 해결방안을 더 추천드립니다~
'Node.js공부 > iOS 앱을 위한 서버개발' 카테고리의 다른 글
공공데이터 포털 OpenAPI 사용하기 - 미세먼지 (0) | 2019.03.23 |
---|