서버가 실행될 때 환경변수에 .env 파일 내용을 등록하고, 값을 가져와서 사용한다.
import dotenv from 'dotenv';
dotenv.config(); // `.env` 파일 내용을 process.env(=환경변수)에 로드합니다.
function required(key, defaultValue = undefined) {
const value = process.env[key] || defaultValue;
if (value == null) {
throw new Error(`Key ${key} is undefined`);
}
return value;
}
export const config = {
jwt: {
secretKey: required('JWT_SECRET'),
expiresInSec: parseInt(required('JWT_EXPIRES_SEC', 86400)),
},
bcrypt: {
saltRounds: parseInt(required('BCRYPT_SALT_ROUNDS', 10)),
},
port: parseInt(required('PORT')),
msdb: {
host: required('DB_HOST'),
user: required('DB_USER'),
database: required('DB_DATABASE'),
password: required('DB_PASSWORD'),
},
cors: {
allowedOrigin: required('CORS_ALLOW_ORIGIN'),
},
csrf: {
plainToken: required('CSRF_SECRET_KEY'),
},
rateLimit: {
windowMs: 60000,
maxRequest: 100,
}
};