mongoose Loader

import * as mongoose from 'mongoose';
  
export default function mongooseLoader(): void {
  const dbUser: string | undefined = process.env.DB_USER;
  const dbPassword: string | undefined = process.env.DB_PASSWORD;
  const dbHost: string | undefined = process.env.DB_HOST;
  const dbPort: string | undefined = process.env.DB_PORT;
  const dbName: string | undefined = process.env.DB_NAME;
  const connectStr = `mongodb+srv://${dbUser}:${dbPassword}@${dbHost}/${dbName}?retryWrites=true&w=majority`;
  if (process.env.NODE_ENV !== 'test') {
    mongoose.connect(connectStr, (err) => {
      if (err) {
        console.error('mongodb connection error', err);
      } else {
        console.log('mongodb connected');
      }
    });
  }
}

dotenv(개발용) 11.23 최신화

MODE=development
MAIN_DOMAIN=localhost

DB_USER=cocoo
DB_PASSWORD=cokiricokiri888
DB_HOST=cluster0.0dory.mongodb.net
DB_PORT=17017
DB_NAME=cocoo

CLIENT_URL=http://localhost:3000

GOOGLE_CLIENT_ID=615367448690-mb2mfgh68t54vu698a132j057s36l88o.apps.googleusercontent.com
GOOGLE_SECRET_ID=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
GOOGLE_CALLBACK_URL=http://localhost:3001/v1/socials/google/callback

GITHUB_CLIENT_ID=141d9e0f05283f5216ef
GITHUB_SECRET_ID=1f314f8016eca9d7298bf5d453ef6e086ca586f7
GITHUB_CALLBACK_URL=http://localhost:3001/v1/socials/github/callback

KAKAO_CLIENT_ID=ee4036034faaf45c346ede9547c83b27
KAKAO_SECRET_ID=
KAKAO_CALLBACK_URL=http://localhost:3001/v1/socials/kakao/callback

TISTORY_CLIENT_ID=8c1a5029b582b7ba0895473dd299716f
TISTORY_SECRET_ID=8c1a5029b582b7ba0895473dd299716fb9fdd1373bdf7e9d9b0ab1fe13fc2776ab5aba54
TISTORY_CALLBACK_URL=http://localhost:3001/v1/socials/tistory/callback

JWT_ACCESS_SECRET=cocoo
JWT_ACCESS_EXPIRE_IN=7776000000
JWT_REFRESH_SECRET=cocoo_secret
JWT_REFRESH_EXPIRE_IN=7776000000

OAUTH2_STATE=cocoo_oauth2

STORAGE_BUCKET=cocoo
STORAGE_END_POINT=https://kr.object.ncloudstorage.com
STORAGE_ACCESS_KEY=vi5XL9CCane61EqnrrHD
STORAGE_SECRET_KEY=yQcYQpRSByLed07nDIge4bW16yS50MBmEBjVeKVJ

VELOG_CALLBACK_URL=http://localhost:3001/v1/socials/velog/callback
VELOG_TOKEN_TTL=300000

[email protected]
GOOGLE_EMAIL_APP_PASSWORD=vyrfbtzfkpnwjvez

TEST_USER=test
TEST_USER_ID=6194d078928b431f065e0997
TEST_EXPIRE_IN=60000

dotenv(배포용)

MODE=production
MAIN_DOMAIN=.hyunmin.dev

DB_USER=cocoo
DB_PASSWORD=cokiricokiri888
DB_HOST=cluster0.0dory.mongodb.net
DB_PORT=17017
DB_NAME=cocoo

CLIENT_URL=https://cocoo.hyunmin.dev

GOOGLE_CLIENT_ID=615367448690-17ak2ouje1ppp6v0oit2e60m7r2stfph.apps.googleusercontent.com
GOOGLE_SECRET_ID=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
GOOGLE_CALLBACK_URL=https://api.hyunmin.dev/v1/socials/google/callback

GITHUB_CLIENT_ID=be95436c9921eb11f0e1
GITHUB_SECRET_ID=4a473149b2327150ffc3ffa9a1a181b3d7453aa7
GITHUB_CALLBACK_URL=https://api.hyunmin.dev/v1/socials/github/callback

KAKAO_CLIENT_ID=d95c30568ada0eb65bb36675f1640415
KAKAO_SECRET_ID=
KAKAO_CALLBACK_URL=https://api.hyunmin.dev/v1/socials/kakao/callback

TISTORY_CLIENT_ID=a40220bd017f2506ee74ab679083781b
TISTORY_SECRET_ID=a40220bd017f2506ee74ab679083781b937de60a9e176bb9670e0fc33696a897a43de70a
TISTORY_CALLBACK_URL=https://api.hyunmin.dev/v1/socials/tistory/callback

JWT_ACCESS_SECRET=cocoo
JWT_ACCESS_EXPIRE_IN=7776000000
JWT_REFRESH_SECRET=cocoo_secret
JWT_REFRESH_EXPIRE_IN=7776000000

OAUTH2_STATE=cocoo_oauth2

STORAGE_BUCKET=cocoo
STORAGE_END_POINT=https://kr.object.ncloudstorage.com
STORAGE_ACCESS_KEY=vi5XL9CCane61EqnrrHD
STORAGE_SECRET_KEY=yQcYQpRSByLed07nDIge4bW16yS50MBmEBjVeKVJ

VELOG_CALLBACK_URL=https://api.hyunmin.dev/v1/socials/velog/callback
VELOG_TOKEN_TTL=300000

[email protected]
GOOGLE_EMAIL_APP_PASSWORD=vyrfbtzfkpnwjvez

TEST_USER=test
TEST_USER_ID=6194d078928b431f065e0997
TEST_EXPIRE_IN=60000

스트레스 테스트