계기
elasticsearch log 중 한 달이 된 log를 매일 새벽 1시에 지우는 로직이 필요했다.
jenkins job으로 aws lambda를 호출하여 elasticsearch의 delete api 사용하기로 했다.
이 과정에서 aws lambda는 node.js로 구현했는데, 이 때 한 달 전 로그를 지우기 위해 한 달 전 날짜를 구하는 방법이 필요했다.
그냥 검색해서
const today = new Date();
const aMonthAgo = new Date(today.setMonth(today.getMonth()));
const year = aMonthAgo.getFullYear();
let month = aMonthAgo.getMonth();
month = month >= 10 ? month : "0" + month;
let day = aMonthAgo.getDate();
day = day >= 10 ? day : "0" + day;
이런 식으로 구현해놨는데, 리더님께서 moment라는 모듈을 추천해주셨다.
이용해보자!
설치하기
npm install moment
금방 설치되는 걸 보니 무거운 애는 아닌가보다.
사용하기!
위의 코드 대신
const indexName = moment().substract(1, 'months').format('lgs-YYYY.MM.DD');
로 바꿔 사용했더니 잘 동작하는 것을 확인할 수 있었다!
'Node.js' 카테고리의 다른 글
[Node.js] NPM으로 Module 제거하기 (+ 모듈 설치) (0) | 2022.09.12 |
---|---|
[Node.js] 설치하기 (0) | 2022.09.05 |