node.js에서 환경 변수를 어떻게 설정할 수 있습니까?
내보내기 또는 cmd.exe 세트 실행과 같은 특정 플랫폼에 의존하지 않는 것을 선호합니다.
답변
다음에서 환경 변수를 설정할 수 있습니다 process.env
.
process.env['VARIABLE'] = 'value';
-또는-
process.env.VARIABLE = 'value';
노드는 플랫폼 사양을 처리해야합니다.
답변
먼저이 패키지를 설치해야합니다 :-https:
//github.com/motdotla/dotenv [ npm install dotenv
]
그런 다음 프로젝트의 루트 디렉터리에 .env 파일을 만들어야하며 여기에 아래와 같은 변수를 추가 할 수 있습니다.
NODE_ENV=PRODUCTION
DATABASE_HOST=localhost
이제 다음과 같이 코드에서 이러한 변수에 쉽게 액세스 할 수 있습니다.
require('dotenv').config()
console.log(process.env.NODE_ENV);
그것은 나를 위해 일했습니다.
답변
node v14.2.0
env 변수를 설정하려면 먼저 프로젝트 홈 디렉토리에 config.env 파일 이름을 만든 다음 필요한 모든 변수를 작성합니다.
config.env
NODE_ENV=development
PORT=3000
DATABASE=mongodb+srv://lord:<PASSWORD>@cluster0-eeev8.mongodb.net/tour-guide?retryWrites=true&w=majority
DATABASE_LOCAL=mongodb://localhost:27017/tours-test
DATABASE_PASSWORD=UDJUKXJSSJPWMxw
이제 npm에서 dotenv를 설치하면 dotenv가 작업을 오프로드합니다.
npm i dotenv
이제 서버 스타터 스크립트에서, 제 경우에는 server.js를 사용하여 env 변수를로드하십시오.
const dotenv = require('dotenv');
dotenv.config({ path: './config.env' });
const app = require('./app'); // must be after loading env vars using dotenv
//starting server
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`app running on port ${port}...`);
});
나는 당신의 참조를 위해 여기에 쓰는 app.js의 모든 익스프레스 코드를 사용하고 있습니다.
const express = require('express');
const tourRouter = require('./route/tourRouter');
const userRouter = require('./route/userRouter');
if (process.env.NODE_ENV === 'development') {
console.log('mode development');
}
app.use(express.json());
app.use('/api/v1/tours', tourRouter);
app.use('/api/v1/users', userRouter);
module.exports = app;
이제 콘솔을 사용하여 서버를 시작하십시오. 저는 nodemon 을 사용하고 있습니다. npm에서 설치할 수 있습니다.
nodemon server.js