asku 프로젝트 배포 설정하다가 불현듯 과거에 고생했던 게 생각나서 적어놓는 오류.
node.js 교과서 등 23년 2월 정도 까지의 코드에는 connect-redis 설정을 위해 다음과 같은 코드를 사용한다.
const RedisStore = require('connect-redis')(session);
그러나 현재는 위와 같은 코드를 사용하면 다음 에러가 발생한다.
const RedisStore = require('connect-redis')(session);
^
TypeError: require(...) is not a function
당시에는 아무리 찾아봐도 해결방법을 찾을 수 없어서 막막했는데, 다음 글을 발견하고 해결하였다.
요약하자면,
1. RedisStore 초기화 시 더이상 express-session을 사용할 필요가 없고,
2. legacyMode도 더이상 사용하지 않는다.
1 때문에 굳이 session을 사용할 필요가 없으므로, 그냥 바로 RedisStore를 가져오면 된다.
const RedisStore = require("connect-redis").default;
다음과 같이 수정하면 다시 정상적으로 작동한다!
당시 문제 해결을 위해 한참동안 여러 블로그 글과 ChatGPT를 사용했는데, 정작 답을 얻은 건 공식 github 업데이트 로그였다. 영어라고 피할 게 아니라 문제가 생기면 공식 문서부터 봐야한다는 교훈을 얻었다ㅠㅠ
'웹 > BackEnd' 카테고리의 다른 글
[DB] 프로젝트의 데이터베이스 스키마를 그려보자 - 순서와 도구 (0) | 2023.07.03 |
---|