Daily Front_Minhhk

express [morgan, bodyParser, cookieParser, express-session] 본문

Study/Node.js

express [morgan, bodyParser, cookieParser, express-session]

Minhhk 2023. 10. 8. 13:08

morgan

 

npm i morgan

 

설치 후, 서버 localhost: 에 접속하면

기존 로그 외에 추가적인 로그를 볼 수있다.

app.use(morgan("dev")); // 개발 시

app.use(morgan("combined")); // 배포 시_정보가 자세히 뜸

 

GET / 200 3.012 ms - 16
middleWare Using...
GET /favicon.ico 304 0.491 ms - -
dev 모드 기준으로 
GET / 500 7.409 ms - 50 -> 각각
[HTTP 메서드] [주소] [HTTP 상태 코드] [응답 속도] - [응답 바이트]를 의미

 

 


 

bodyParser

-> 요청의 본문에 있는 데이터를 해석해서 req.body 객체로 만들어주는 미들웨어

 

 

express 의 bodyParser은 아래와 같은 미들웨어를 사용!

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

 

....

 

Raw는 요청의 본문이 버퍼 데이터일 때, Text는 텍스트 데이터일 때 해석하는 미들웨어

버퍼나 텍스트 요청을 처리할 필요가 있다면 body-parser를 설치한 후 다음과 같이 추가하자!

 

npm i body-parser
const bodyParser = require('body-parser');
app.use(bodyParser.raw());
app.use(bodyParser.text());

 

 

 


 

 

cookieParser

-> 요청에 동봉된 쿠키를 해석해 req.cookies 객체로 만듬

 

 res.cookie(키, 값, 옵션)

 

쿠키를 생성 하려면 res.cookie, 

 

제거 하려면 res.clearCookie 

_쿠키를 지우려면, 키와 값 외에 옵션도 정확히 일치해야 쿠키가 지워짐.

단, expires maxAge 옵션은 일치할 필요가 없다.

 

res.cookie('name', 'kim', { 
  expires: new Date(Date.now() + 1000000),
  httpOnly: true, 
  secure: true,
});

res.clearCookie('name', 'kim', { httpOnly: true, secure: true });

 

 


 

express-session

->

세션 관리용 미들웨어

로그인 등 세션을 구현하거나 특정 사용자를 위한 데이터를 임시적으로 저장해둘 때 사용하며,

사용자별로 req.session 객체 안에 유지!

 

- cookie-parser 미들웨어 뒤에 놓는 것이 안전

- resave는 요청이 올 때 세션에 수정 사항이 생기지 않더라도 세션을 다시 저장할지 설정하는 것

- saveUninitialized는 세션에 저장할 내역이 없더라도 처음부터 세션을 생성할지 설정하는 것

- 세션 쿠키의 이름은 name 옵션으로 설정. 기본 이름은 connect.sid

 

app.use(session({
  resave: false,
  saveUninitialized: false,
  secret: process.env.COOKIE_SECRET,
  cookie: {
    httpOnly: true,
    secure: false,
  },
  name: 'session-cookie',
}));

 

->

세션을 한 번에 삭제하려면 

req.session.destroy

메서드를 호출

 

 

 

'Study > Node.js' 카테고리의 다른 글

express [req,res] 종류  (0) 2023.10.08
express 라우터 분리하기, 라우트 매개변수  (0) 2023.10.08
express [multer] 파일 업로드!  (0) 2023.10.08
express 시작__미들웨어 app.use()  (0) 2023.10.05