Hello, Android!

dotenv, morgan, static 본문

Node

dotenv, morgan, static

lwndnjs93 2021. 2. 15. 17:22

- 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