Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 국비지원취업
- DFS
- 컴퓨터공학
- CS
- 부트캠프
- BFS
- 자바스크립트
- 패스트캠퍼스
- 야놀자
- Javascript
- LinkSnap
- 프론트엔드개발자
- github
- 백준
- 너비우선탐색
- 국비지원
- html/css/js
- git
- 알고리즘
- js
- computerscience
- 그리디
- CSS
- 코딩테스트
- nodejs
- cpu
- 컴퓨터과학
- 코테
- KAKAO
- 호이스팅
Archives
- Today
- Total
My Boundary As Much As I Experienced
express에 미들웨어 설정하기 본문
미들웨어란?
미들웨어(Middleware)는 Express.js와 같은 웹 애플리케이션 프레임워크에서
HTTP 요청(Request)과 응답(Response) 사이에 실행되는 함수이다.
미들웨어는 요청 객체, 응답 객체, 그리고 다음 미들웨어 함수를 제어할 수 있다.
할 수 있는 것:
- 요청 처리: 요청을 분석하고 필요한 데이터를 추가하거나, 요청을 변경할 수 있다.
- 응답 처리: 응답을 생성하거나 수정할 수 있다.
- 요청 흐름 제어: 특정 조건에 따라 다음 미들웨어로 요청을 전달하거나, 요청 처리를 종료하고 응답을 보낼 수 있다.
- 공통 기능 처리: 인증, 로깅, 에러 처리, 정적 파일 제공 등의 기능을 공통으로 처리하는 데 자주 사용된다.
미들웨어는 app.use() 또는 특정 라우트에 연결하여 사용되며,
여러 개의 미들웨어를 배열로 묶어 순차적으로 연결하여 사용할 수 있다.
사용법 1. app.use(...)
예시: 로그인이나 회원가입 시 유저가 아이디 혹은 비번을 빈칸으로 제출 시 에러처리
route도 배열로 묶어서 여러 경로에 적용할 수 있는 것도 주의할만하다.
next를 꼭 실행시켜줘야 다음 라우트를 찾아간다는 것을 유념해야된다.
app.use(["/login", "/signup"], (req, res, next) => {
console.log(req, "middleware login");
if (req.body.username === "" || req.body.password === "") {
res.status(401).json({ error: "빈칸 안 돼" });
} else {
next();
}
});
사용법 2. 가운데 넣기 : app.get("/login", middleWare ,( req, res )=> { ... })
예시: 라우트와 콜백 사이에 미들웨어를 넣어서 사용할수도 있다.
정말 미들웨어같은 위치가 아닐 수 없다. pathname과 콜백 사이..
app.get("/login", middleWare ,( req, res )=> { ... })
물론 여기서도 화살표 함수 형태로 콜백함수를 넣어줘도 된다.
app.get("/login", (req, res, next) => {
...
next()
}, (req, res) => {
...
})
'BackEnd > Node.js' 카테고리의 다른 글
AWS) S3, MongoDB, Multer를 이용하여 이미지 업로드 crud 구현하기 (+ejs문법에서 조건적으로 이미지 파일 첨부) (0) | 2024.08.26 |
---|---|
AWS S3 세팅하는 방법 (+IAM 세팅) (0) | 2024.08.24 |
express) dotenv 라이브러리 세팅 (0) | 2024.08.19 |
express로 회원가입 API 만들기 (+ Hashing 적용하기, 접근 권한 적용하기) (0) | 2024.08.11 |
직렬화(serialization)와 역직렬화(deserialization) (0) | 2024.08.07 |