node

송은우·2022년 1월 9일
0

express

req.data 에 저장하는 방식으로 다음 라우터에 데이터 넘겨줄 수 있음
req.session.변수명 에 저장하는 방식으로 영구히 남겨둘 수 있음
절대로 express 내에서 let 넣어서 작성하지 않아야 함. 전역 변수가 됨. app.set도 동일함.

로그인 한 사람에게만 보여주고 싶은 내용들같은 경우에는 미들웨어 내에 다른 미들웨어 넣음
미들웨어 확장법의 대표적 경우
나만의 미들웨어 끝에 req,res,next를 넣으면 됨.

app.use('/',(req,res,next)=>{
 if(req.session.id){ 
  express.static(__dirname,'public')(req,res,next);
 } else{
  next();
 }
}

세션 쿠키 서명하는 방법 적용시 s%3A가 앞에 붙고, 그 뒷부분에 뒷 부분이 실제 암호화된 내용임.
쿠키 보낼 때 {signed:true}를 쿠키 값 뒤에 전달하면 처음 설정했던 키를 이용해 서명 됨.
서명된 쿠키는 req.signedCookies에 있음.
req.cookies는 그냥 cookie
req.body
req.app 을 이용해 app객체에 접근 가능함.
res.app을 이용해도 app가능
res.end() 데이터 없이 응답 보낼 수 있음
res.json()
res.sendFile()
res.setHeader(헤더,값)
res.status(코드)

end, json, redirect, render, send 는 전체 요청중 딱 1번만 사용해야 됨.

name은 connect.sid가 기본값.
res.redirect('/')같은 방식으로 다시 처음 장소로 보낼 수 있음.
미들웨어로 항상 끝낼 때는 res.send로 끝을 내줘야 함.

const router=express.Router();로 라우터 생성 후
router.get('주소',req,res);
export default router 이런 방식으로 라우터 분리 가능. 주소가 원래 라우터랑 합쳐진다는 특징이 있음.
req.params, req.query 같은 것으로 받을 수있음

req.status(404).send("없음") 같은 것들을 이용해 한 번에 메서드 체이닝도 가능

profile
학생의 마음가짐으로 최선을 다하자

0개의 댓글