Node Js의 비밀 및 환경 변수 관리
7726 단어 javascriptbeginnerswebdevnode
가장 흔한 비밀은,
일반적인 환경 변수는,
다음과 같은 기타 애플리케이션별 구성,
첫 번째 옵션은 코드 내에서 관리하는 것입니다. 그러나 원격 저장소(예: Github, GitLab 등)에 코드를 보관하면 잘 작동하지 않습니다.
또한 다중 개발자 환경에서는 작동하지 않습니다. 모든 개발자는 코드에 하드 코딩할 수 없는 다른 구성을 사용합니다.
이 문제는 시스템 환경 변수를 설정하여 프로덕션에서 수정할 수 있습니다. 이 변수는 애플리케이션에서
process.env
를 통해 액세스할 수 있습니다.그러나 개발 중에는 컴퓨터에 많은 응용 프로그램이 있습니다. 대부분의 변수는 애플리케이션마다 동일합니다. 따라서 이 변수를 응용 프로그램별로 사용하는 방법을 찾아야 합니다.
개발 과정에서 이 문제를 해결할 수 있는 멋진 패키지가 있습니다.
dotenv
라고 합니다.dotenv
는 애플리케이션 코드 내에서 환경 변수 및 구성을 관리하는 데 도움이 됩니다.설치하자
dotenv
,npm install dotenv
프로젝트의 루트에
.env
파일을 만듭니다./*
file: .env
*/
API_BASE_URL=http://localhost
PORT=8080
NODE_ENV=development
CLIENT_SECRET=xydwy10290askajs
간단한 노드 Js 애플리케이션을 만들고
dotenv
파일에서 server.js
를 사용하자./*
file: server.js
*/
const http = require('http');
const express = require('express');
// import dotenv package
const dotenv = require('dotenv');
// Use `.env` config when the NODE_ENV is other than production
if (process.env.NODE_ENV !== 'production') {
dotenv.config();
}
const app = express();
// Root URL will serve all the process env values from the .env file
app.get('/', (req, res) => {
res.json({
node_env: process.env.NODE_ENV,
port: process.env.PORT,
api_root_url: process.env.API_BASE_URL,
client_secret: process.env.CLIENT_SECRET,
port_lowercase: process.env.port || null // Will be null, since env variables are case sensitive
});
});
// Read port from PORT env variable or use 8080
const port = process.env.PORT || 8080;
const server = http.Server(app);
server.listen(port, () => {
console.log(`Server listening on port: ${port}\n`);
});
dotenv
이외의 환경에 대한 코드 사용 production
. port
파일에서 NODE_ENV
값과 .env
를 읽습니다.서버를 시작하고 루트 URL을 확인하십시오.
http://localhost:8080
이것이 결과일 것이다,
{
"node_env": "development",
"port": "8080",
"api_root_url": "http://localhost",
"client_secret": "xydwy10290askajs",
"port_lowercase": null
}
보시다시피 이러한 env 키는 대소문자를 구분합니다.
Reference
이 문제에 관하여(Node Js의 비밀 및 환경 변수 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jsmates/managing-secrets-and-environmental-variables-in-node-js-2hja텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)