body-parser
요청의 본문을 해석해서 req.body 객체로 만들어주는 미들웨어로, 주로 폼 데이터나 AJAX 요청의 데이터를 처리한다.
멀티파트(이미지, 동영상, 파일) 데이터는 처리하지 못한다. 멀티파트 데이터 처리는 multer 패키지를 사용해야 한다.
// 본문이 버퍼 또는 텍스트 데이터일 때
const bodyParser = require('body-parser')
app.use(bodyParser.raw());
app.use(bodyParser.text());
익스프레스 4.16.0 버전부터 body-parser 미들웨어의 일부 기능이 내장되었으므로 따로 설치할 필요가 없지만,
Raw(버퍼데이터)나 Text 형식의 데이터를 해석해야 하면 body-parser를 설치하고 위 코드를 추가하면 된다.
- json: 요청 본문이 json인 경우 해석
- urlencoded: 폼 요청을 해석
- { extended: false }: false면 노드의 querystring 모듈을 사용하여 쿼리스트링 해석, true면 qs 모듈로 해석
cookie parser
요청 헤더의 쿠키를 해석해 req.cookies 객체로 만드는 미들웨어이다.
해석된 쿠키들은 req.cookies 객체에 들어간다.
예를 들어 name=zerocho 쿠키를 보냈다면 req.cookies = { name: 'zerocho' }가 된다.
// 쿠키 암호화
app.use(cookieParser(비밀키));
쿠키를 암호화하려면 인수로 비밀키를 넣으면 된다.
쿠키는 위조되기 쉬우므로 비밀키를 통해 만들어낸 서명을 쿠키 값 뒤에 붙인다.
서명된 쿠키는 req.signedCookies객체에 들어간다.
express-session
세션 관리용 미들웨어이다.
로그인 기능 등 세션을 구현하거나 특정 사용자들 위한 데이터를 임시 저장할 때 사용한다.
express-generator에 내장되어 있지 않아 별도 설치가 필요하다.
- resave: 요청이 왔을 때 세션에 수정사항이 생기지 않아도 다시 저장할지 여부
- savaUninitialized: 세션에 저장할 내역이 없더라도 세션을 저장할지
- secret: 쿠키 암호화
- cookie: 세션 쿠키 암호화
- httpOnly: 클라이언트에서 쿠키를 확인하지 못하도록 하면 true
- secure: https 환경에서 사용하면 true
'전공수업 > 웹서버프로그래밍(Node.js)' 카테고리의 다른 글
Express란 무엇인가(+ 미들웨어) (0) | 2024.06.14 |
---|---|
npm이란 무엇인가 (2) | 2024.06.03 |
[JavaScript] Callback Hell, Promise, async/await (0) | 2024.05.01 |
[JavaScript] 화살표 함수, this, 비구조화 할당 (0) | 2024.05.01 |
[Node.js] 파일 시스템 (0) | 2024.04.30 |
댓글