TIL 23-06-22

level·2023년 6월 22일

TIL

목록 보기
34/95

테이블 migration 에러

테이블명은 소문자 복수형으로
각 테이블의 id는 그냥 id로

// db:migrate 명령어

npx sequelize db:migrate:status
npx sequelize db:migrate:undo
npx sequelize db:migrate:undo:all
npx sequelize db:migrate

cookie header authorization 할당 차이

cookie-parser모듈이 헤더에있는 쿠키 정보를 파싱하여 req.cookies 객체에 저장하고 req.cookies를 사용하여 쿠키 정보에 접근할 수 있음
어제 한 방식대로 authorization header가 동작하지 않았던 이유는 다음과 같음
어제의 방식은 req.headers로 수정한 뒤 authorization header로 토큰을 받아옴.
그러면 서버는 해당 헤더를 받아서 처리하지 못하고 그대로 남겨둠.
그 후 쿠키파서를 실행하였고 쿠키정보를 req.cookies에 저장하였음.
이후 req.cookies로 변경했을 때 authorization 헤더필드는 존재하지 않고 유지한 쿠키 정보만을 이용하여 인증함
오늘은 authorization header로 토큰을 보내고 쿠키파서 실행 후 req.cookies를 할당하려고 했으나,
req.header로 받아오는 과정이 없었으므로 cookie값이 undefined가 됨.
즉 일반적으로 쿠키파서를 실행한 후에는 클라이언트로부터 받은 쿠키 정보를 req.cookies에 저장하여 활용하는것이 효율적이며 cookie header에 cookie값을 할당해주는 것이 편리한 방법.


닉네임 넣기

attributes에 다른 테이블 속성 끼워넣기

참고
https://sequelize.org/master/manual/raw-queries.html#-literal-col-or-literal---or---literal-
엑셀보다 쉬운 SQL 강의

[sequelize.literal(`(SELECT nickname FROM users WHERE users.id = posts.userId)`), "nickname"],

sequelize.literal() 메서드를 사용하여 SQL서브쿼리를 작성함
SELECT문을 사용하여 데이터를 검색했으며 userId로 users와 posts 테이블을 join 하여 nickname 컬럼을 가져옴
include옵션 내에서 이루어지므로 관계가 있어야 함


sql 데이터베이스에서 삭제하기

findOne()메소드로 해당 id의 게시글을 찾은 뒤 post로 할당한 후 .destroy()메소드를 활용하여 삭제함


0개의 댓글