dotenv 및 상대 경로
2529 단어 todayilearnedtestingnode
나는 일반적으로
dotenv
가 필요하지 않은 콤보 node.js/AWS Lambda와 같은 서버리스 환경에서 작업하지만 node.js 람다에 대한 로컬 Express 래퍼를 실행하고 단위 테스트를 수행하는 동안 환경을 제어하는 데 사용합니다.사용하기 위한 명확하고 잘 알려진 패턴이 없으면
dotenv
가 내장require
함수처럼 작동하고 상대 경로를 허용한다고 생각하는 함정에 빠질 수 있습니다. with require
문과의 근접성은 도움이 되지 않습니다. 다음과 같은 것:const { myfunction } = require("../mymodule.js");
require("dotenv").config({ path: `../.env.test` });
그러나 이것은 작동하지 않습니다.
왜 그런지 알아? Dotenv는 구성된 경우에만 절대 경로를 허용합니다. official docummentation은 이에 대해 명확하지 않으며 단위 테스트에서 환경 변수가 로드되지 않는 이유를 파악하는 데 몇 시간을 보낼 수 있습니다.
따라서 필자는 자신의 작업
dotenv
코드를 정교하게 만들고 안전하게 저장하고 node.js 앱의 환경 변수를 설정해야 할 때마다 재사용하는 것을 권장합니다.이것은 내가 따르는 접근 방식의 예입니다.
const { myfunction } = require("../mymodule.js");
require("dotenv").config({ path: __dirname + `/../.env.test` });
__dirname
함수를 사용하여 현재 모듈의 경로를 가져온 다음 .env 구성 파일에 상대 경로를 추가합니다.이 정보가 도움이 되길 바라며 이 함정에 절대 빠지지 마십시오.
즐거운 코딩!
Reference
이 문제에 관하여(dotenv 및 상대 경로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/eriesgo/dotenv-and-relative-paths-fp2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)