• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

7.6강 models/index.js의 대해서 궁금한 것이 있습니다.

22.01.14 08:34 작성 조회수 96

0

 제가 교제를 보고 공부하는데 궁금한것이 있습니다. 7.6강 models/index.js파일을 보시면 

const config = require('../config/config')[env];

이런 코드가 있던데 []가 배열에서 []안에 넣은 인덱스값을 참조하게 되는게 맞지 않나요? 그런데 제가 만든 프로젝트안에 ../config/config 을 살펴보면 env값은 없고 심지어 객체 데이터 타입이라 []로 참조할 수 있는게 맞나 싶습니다. 아니면 env를 참조할때는 저런 방식으로 사용하나요?

 그리고 중요한점은 제가 이 코드를 프로젝트의 도입하려하는데 모종의 이유로 제 프로젝트에 ES2015방식을 사용하면서 모듈을 불러올때 const """ = require(""")이런 방식을 사용하지 못합니다. 따라서 

const config = require('../config/config')[env];

이런 방식으로 [env]를 붙일 수가 없습니다. 질문을 요약하자면,

1. ../config/config(.json) 파일에는 배열객체가 아닌 json파일인데 왜 []가 사용되는지 궁금합니다.

2. 보통 env접근할때는 dotenv모듈을 불러와서 사용하지 않나요?

3. [env]가 어떤식으로 동작되는지 궁금합니다.

4. [env]가 꼭필요한지 궁금합니다.

5. [env]가 필요하다면 ES2015를 사용할때 어떤식으로 작성되어야 할지 궁금합니다.

답변 1

답변을 작성해보세요.

0

1. 음.. 자바스크립트에서 []는 배열에만 쓰는게 아닙니다. 객체에 쓰이는 겁니다.

const a = { b: 'c' }이면 a['b']는 c입니다.

2. dotenv를 씁니다. 다만 여기서 env는 process.env.NODE_ENV로 production, development, test 등이 들어갈 수 있고, 이건 .env 파일에 적을 수 없는 내용입니다.

3. 그냥 전부 자바스크립트입니다. 자바스크립트 기본 문법입니다.

4. .env.development, .env.production, .env.test처럼 아예 env별로 .env 파일을 따로 만들어서 쓰는 방법도 있긴 합니다.

5. import config = require('../config/config')한 후에

config[env]로 쓰면 됩니다.

이승훈님의 프로필

이승훈

질문자

2022.01.14

친절한 답변 감사합니다!