728x90
반응형
미들웨어가 뭐고 왜써야하는지 알려줌
미들웨어는 서버만들때 요청이 들어오면 응답을 해주는 API를 만들때
요청을 받고 응답을 해주기전에 여러가지 기능을 수행할 수 있게 해주는거임
이게뭔말이냐면
예를들어 클라이언트로부터 게시물을 보는 gat요청이 들어오면
해당 게시물을 응답해줘야할꺼 아닙니까
근데 로그인을 한사람만 게시물을 볼수있게 하고싶으면 어쩝니까?
API코드 작성할때 로그인을 했는지 검사하는 코드를 작성하면 되는데
로그인이 필요한 수많은 API들에 로그인 검사코드를 하나하나 작성하면 너무 비효울 적일꺼같습니다
그럴때 미들웨어를 사용하면 손쉽게 로그인이 되어있는지 확인한 뒤에 게시물을 응답해주는 API를 만들수 있습니다
//로그인 검사하는 함수를 대충만듬
function 로그인검사(요청, 응답){
if(!요청.user){ //로그인정보가 없으면
응답.send("로그인하세요~") //로그인하세요를 응답해줌
}
}
▼여기에 함수명 써서 이게 실행된후 다음 으로 넘어감 여기를 '미들웨어'라고 부름
app.get('/', 로그인검사, (요청, 응답, next)=>{
//메인페이즈 보여주는 코드~~
})
근데 이것도 로그인이 필요한 모든 API에 넣기 힘들지 않겠습니까
API 1000개 있으면 매운 곤란할꺼 같습니다
그럴때 사용할 수 있는 방법이
//로그인 검사하는 함수를 대충만듬
function 로그인검사(요청, 응답){
if(!요청.user){ //로그인정보가 없으면
응답.send("로그인하세요~") //로그인하세요를 응답해줌
}
}
app.use(로그인검사) <--'이 코드 아래에 있는거 모두 미들웨어 자동적용됨'
app.get('/', (요청, 응답, next)=>{
//메인페이즈 보여주는 코드~~
})
근데 아래있는거 모두는 말고 특정 URL만 로그인검사를 하고싶으면 어쩝니까
그럴때
//로그인 검사하는 함수를 대충만듬
function 로그인검사(요청, 응답){
if(!요청.user){ //로그인정보가 없으면
응답.send("로그인하세요~") //로그인하세요를 응답해줌
}
}
app.use('/어쩌구', 로그인검사); <-'/어쩌구 로 시작하는 모든API에 미들웨어 자동적용~'
app.get('/', 로그인검사, (요청, 응답, next)=>{
//메인페이즈 보여주는 코드~~
})
app.get('/어쩌구', 로그인검사, (요청, 응답, next)=>{
//메인페이즈 보여주는 코드~~
})
미들웨어를 잘 활용하면 요청이 왔을때 현재 시간을 출력한다던지 상상력을 더해서 유용하게 사용할수 있습니다
728x90
반응형
'Node.js' 카테고리의 다른 글
게임 서버개발자, 실무에서 게임 개발이 시작되는 과정 (0) | 2024.09.27 |
---|---|
프리즈마(Prisma) (1) | 2024.09.11 |
[Node.js + MongoDB + ejs]글 작성기능 만들기(post요청,insertOne,예외 처리) (2) | 2024.07.27 |
응답.의 종류 (0) | 2024.07.27 |
[Node.js + MongoDB]상세페이지 만들기 1 (URL parameter) (0) | 2024.07.26 |