
2024년이 시작한지 벌써 한달이 지났다. 시간이 빨리 지나가는 만큼 내 지식도 빠르게 확장되었으면 좋겠다.

(로그인) 오른쪽의 쿠키로 불러올 때는 잘 작동하는 코드가 좌측에서 session으로 불러올 때 userId를 못가져온다고 에러가 뜬다.
(정보 조회) 첫 줄 const {userId} = req.user;을 못 찾는다고 에러가 뜬다.
yarn add express-mysql-session
express-session만 깔았던 것이 문제였다. 또한
import expressSession from 'express-session';
import expressMySQLSession from 'express-mysql-session';
aap.js에 위의 두 패키지를 불러오고
const MySQLStore = expressMySQLSession(expressSession);
const sessionStore = new MySQLStore({
user: process.env.DATABASE_USERNAME,
password: process.env.DATABASE_PASSWORD,
host: process.env.DATABASE_HOST,
port: process.env.DATABASE_PORT,
database: process.env.DATABASE_NAME,
expiration: 1000 * 60 * 60 *24, //1일
createDatabaseTable: true //테이블이 없으면 자동적으로 생성
})
app.use(
expressSession({
secret: process.env.SESSION_SECRET_KEY,
resave: false,
saveUninitialized: false,
cookie:{
maxAge: 1000 * 60 * 60 * 12, //12시간동안 쿠키를 사용할 수 있도록 설정
},
store: sessionStore
})
);
코드를 추가한 후 라우터를 불러오니 로그인은 잘 되었다.
그리고 정보 조회는 auth.middleware.js를 작성하고 get과정 중에서 authMiddleware을 추가했더니 장문의 에러가 있었냐는 듯 잘 작동했다.

↑ 에러 사진

(얄밉게 잘 작동해주는 인섬니아)

↓ 그리고 문제의 코드


그리고 역시 잘 작동해주는 인섬니아


위의 사진은 참고했던 유저 정보 수정 API. 마찬가지로 이력서 수정에 사용하려고 했으나

resumeId가 필요하다고 떴다.


➕ 여기에서 본인 확인까지 추가하면 될것같다. (다른 것이 급해서 지금은 넘어가려고 한다...)

