해결된 질문
작성
·
279
0
안녕하세요~
deserialize 캐싱를 구현해보았습니다.
구현 하다보니 두가지 의문이 생겨 질문합니다.
우선 아래는 제가 구현한 코드 입니다.
let users = [ ] ;
passport.deserializeUser((id, done) => {
let result = users.indexOf(id);
if (result === -1) { // result가 -1이라면 === 배열에 아이디 없다.
User.findOne({ where: { id } }) // 유저 아이디가 있는지 db에서 검색해라.
.then((user) => done(null, user)) // 검색이 성공했다면, 결과를 파라미터에
.then(()=>users.push(id)) // 그리고 배열에 아이디를 추가해라.
.catch((err) => done(err));
} else { // result가 -1이 아니라면, 배열안에 아이디가 있다.
done(null,users[result]);
}
});
테스트 해봤는데 일단은 동작이 됩니다.
제가 궁금한 것은
1. 배열의 indexof 함수가 동기인지, 비동기인지 입니다.
2. 유저가 로그아웃을 하거나 , 브라우저를 종료해도
배열안에 저장한 유저 아이디는 그대로 저장되어 있는데 ,
혹시 위와 같은 상황에서 발생할 수 있는 문제점이 있을까요?
( 제 지식으로는 딱히 문제가 될 것 같지는 않은데, 강사님의 의견이 궁금합니다. )