일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- route 53
- 토큰
- 패스파라미터
- 부트캠프
- JWT
- .env
- 레포지토리
- secret코드
- 환경변수
- 포트번호
- 네비게이션 한번에
- 게시글 이미지
- 스테이지어스
- 이미지가 포함된 게시글
- N+1
- Winston
- 메뉴바
- 3계층구조
- element.style
- JWT 쓰는이유
- unnest
- 메뉴바 한번에
- 쿼리스트링
- 알림생성
- getComputedStyle
- JWT 쓰는 방법
- 알림생성모듈
- JSON Web Token
- 게시글 이미지 업로드
- N+1문제
- Today
- Total
기주
Express static 본문
Express static 미들웨어
express 에서 기본적으로 제공하는 미들웨어이고, express 객체안에서 바로 꺼내 쓸 수 있다
정적파일인 이미지, css, javascript등 파일을 쓸때 사용한다
지정된 디렉토리에서 파일을 찾아서 클라이언트에게 제공한다
이 미들웨어를 통해 정적파일에 restful한 방식으로 접근할 수 있다.
사용법 예시1)
app.use('요청경로', express.static('실제경로'));
app.use('/', express.static(path.join(__dirname, 'public')));
app.use('/', express.static(path.join(__dirname, 'public')));
ㄴ 현재 위치한 파일에 대한 절대경로 + '/public' => 이 경로를 기본경로로 설정
http://localhost:3000/profile-img/1234.png 실제로 이런 요청이 왔다면,
.(실행파일의 절대경로~)/public/profile-img/1234.png 이 주소의 파일에 접근할 수 있다
예시2)
app.use('/static', express.static('images'))
ㄴ /static으로 시작하는 경로로 요청이 들어오면, /public 디렉토리를 루트경로로 지정하여 파일 제공
http://localhost:3000/static/images/cat.png 요청으로
images/cat.png 파일 접근 가능하다.
예시3)
const path = require('path')
app.use('/static', express.static(path.join(__dirname, 'public')))
하지만 node를 시작한 경로에따라 express.static이 상대적으로 다른 위치에서 적용될 위험이 있다.
그래서 위와같은 __dirname을 통해 절대경로를 사용해서 쓰는 편이 더 안전하다
요청경로에 파일이 없으면 알아서 내부적으로 next를 호출한다. 다음 미들웨어가 실행된다
파일이 있다면 next를 호출하지않고 끝난다.(res.sendFile로 응답보내고 끝.) 다음 미들웨어는 실행되지않는다
'TIL' 카테고리의 다른 글
[nest.js] swagger 적용하기 (0) | 2024.05.29 |
---|---|
[ERROR] ReferenceError: exports is not defined in ES module scope (0) | 2024.05.28 |
[DB] 트랜잭션 동시에 실행해서 성능올리기 ( confilct serializable한 nonserial schedule을 허용하기 ) (0) | 2024.04.08 |
[DB] soft delete 논리삭제 (0) | 2024.04.05 |
N+1 문제 해결하기 (0) | 2024.04.05 |