spf mailalarm 프로젝트 중
이벤트 로그를 DB에 저장하고 이를 불러와서 보여주는 페이지를 만들었다.
이벤트 발생 시 시간 값을 추출해 DB에
이런 형식으로 저장을 했었다.
justin: 이러면 나중에 이벤트 로그 페이지에서 시간별로 조회를 하거나 할 때 쿼리를 만들 수 없다.
사용자에게 보여줄 때는 yyyy-mm-dd hh:mm:ss 이런 형태, DB에 저장할 때는 timestamp 같은 형태로 저장하자.
1. event log에서 time 값을 가져와 timestamp 형태로 DB에 저장.
ws.on('message', function message(data) {
strData = data.toString('utf-8')
// console.log('strData', strData)
const parsedResData = JSON.parse(strData);
웹소켓으로 실시간 이벤트를 받고 있다.
- JSON으로 파싱.
const visitTime = parsedResData.Event.server_datetime
파싱한 데이터에서 이벤트 발생 시간 변수에 저장.
async function sendSMTP(authUserID, time, place) {
const originalDate = time;
const dateObject = new Date(originalDate);
let visitTime = dateObject
시간 변수를 sendSMTP 함수에서 받아 tiemstamp 객체로 만든다.
이 객체는 다시 visitTime 라는 변수에 저장하고.
메일을 정상적으로 보낸 후 DB에 timestamp 형태의 visitTime 변수를 저장한다.
const insertEventLog = {
time: visitTime,
userID: authUserID,
name: userName,
email: guardian,
device: visitPlace
};
const LogValues = Object.values(insertEventLog);
var eventLog_insert = 'INSERT INTO spf_event (time, userID, name, email, device) VALUES (?,?,?,?,?)'
db.run(eventLog_insert, LogValues, function(err) {
if (err) {
console.error('이벤트 로그 추가 중 오류 발생:', err.message);
} else {
console.log('이벤트 로그 추가 성공');
}
});
반응형
'TIL' 카테고리의 다른 글
Flutter 개발 전 환경 구축. (0) | 2024.09.13 |
---|---|
Git repository 삭제하기. (0) | 2024.03.06 |
새로운 git 주소로 주소 변경해서 코드 올리기. (0) | 2024.03.06 |
파워포인트 대문자 원기호 만들기. (1) | 2023.11.20 |
Pyqt에서 메시지 박스 띄워주기. (0) | 2023.11.13 |