Hello, Android!
dotenv, morgan, static 본문
- dotenv
dotenv 패키지는 .env 파일을 읽어 process.env로 만든다
.env 파일에는 키=값 의 형태로 추가하면
process.env.키 에 해당 값이 할당된다
process.env.COOKIE_SECRET 에서는 .env 파일에서 COOKIE_SECRET의 값이 된다
이와같이 .env 파일에 비밀키 등을 관리하게 되면
소스코드가 유출되어도 비밀기는 지킬 수 있다
- morgan
지금까지 로그는 console.log error 등으로 필요한 부분에 직접 로그를 출력하였다
하지만 morgan 미들웨어를 사용하면 요청과 응답에 대한 로그를 콘솔에 기록한다
app.use(morgan("combined")) 에서 morgan을 combined 모드로 실행했다
app.use는 모든 요청에 대하여 실행되기 때문에 이제 서버에 요청이 들어오면
morgan이 모든 로그를 콘솔에 기록한다
이번에는 combined 모드를 하였지만 combined, common, dev, short, tiny까지 다섯 가지 모드를 지원한다
- static
static 미들웨어는 정적인 파일들을 제공하는 라우터 역할을 한다
익스프레스에 내장되어 있는 미들웨어이기 때문에 별도의 설치없이 익스프레스 객체에서 사용하면 된다
사용 방법은 app.use("요청 경로", "읽어올 디렉토리 경로") 의 형태로 사용한다
위의 경우에는 /friends 로 시작하는 요청이 들어오면 public 폴더 내에 파일을 찾아 읽어서 반환한다
http://localhost:8080/friends/friendsjson 를 요청하면 public 내부의 friends.json을 읽는다
정적 파일을 알아서 제공하기때문에 별도의 파일 읽기 작업을 할 필요가 없으며
만약 해당 파일이 없는 경우 내부적으로 next를 호출하며
파일이 있다면 다음 미들웨어는 실행되지 않는다
여기서 주목해야하는 서버에 실제 파일이 있는 곳은 public이지만
요청은 /friends를 사용하기때문에 서버 폴더와 요청 경로가 다르기 때문에
외부에서 서버 구조를 쉽게 파악할 수 없어 보안에 도움이 된다
'Node' 카테고리의 다른 글
body-parser, cookie-parser (0) | 2021.02.16 |
---|---|
express에서의 라우팅과 미들웨어 (0) | 2021.02.08 |
npm pakage.json (0) | 2021.02.08 |
클러스터 (0) | 2021.02.06 |
쿠키와 세션 (0) | 2021.02.05 |