- .env
JWT_SECRET=temp
HASH_ROUNDS=10
PROTOCOL=http
HOST=localhost:3000
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE=postgres
- npm 설치
yarn add @nestjs/config
- 앱 모듈에 import
@Module({
imports: [
UsersModule,
PostsModule,
ConfigModule.forRoot({
envFilePath: ".env",
isGlobal: true, //모든서비스에 자동 import
}),
* 서비스 코드 수정
- 서비스 주입
@Injectable()
export class AuthService {
constructor(
private readonly jwtService: JwtService,
private readonly usersService: UsersService,
private readonly configService :ConfigService,
- 사용
- 문제 : 스트링을 직접 입력하는게 별로임.
rotateToken(token: string, isRefreshToken: boolean){
const decoded = this.jwtService.verify(token,{
secret:this.configService.get<string>('JWT_SECRET'),
});
- 해결 : common.const를 만들어서 env의 key와 연결시킴
export const ENV_PROTOCOL_KEY = 'PROTOCOL' //env의 PROTOCOL 키와 연결시킴
export const ENV_HOST_KEY = 'HOST'
export const ENV_JWT_SECRET_KEY = 'JWT_SECRET_KEY'
export const ENV_HASH_ROUND_KEY = 'HASH_ROUNDS'
export const ENV_DB_HOST_KEY = 'DB_HOST'
export const ENV_DB_PORT_KEY = 'DB_PORT'
export const ENV_DB_USERNAME_KEY = 'DB_USER'
export const ENV_DB_PASSWORD_KEY = 'DB_PASSWORD'
export const ENV_DB_DATABASE_KEY = 'DB_DATABASE'
- 개선후
secret:this.configService.get<string>(ENV_JWT_SECRET_KEY),
parseInt(this.configService.get<string>(ENV_HASH_ROUND_KEY)),
* process => 환경변수 불러오기
- 문제 : app 모듈에서는 configservice 사용불가능 -> process 이용 => db 정보 얻기
@Module({
imports: [
UsersModule,
PostsModule,
ConfigModule.forRoot({
envFilePath: ".env",
isGlobal: true, //모든서비스에 자동 import
}),
TypeOrmModule.forRoot({
type: 'postgres',
host: process.env[ENV_DB_HOST_KEY],
port: +process.env[ENV_DB_PORT_KEY],
username: process.env[ENV_DB_USERNAME_KEY],
password: process.env[ENV_DB_PASSWORD_KEY],
database: process.env[ENV_DB_DATABASE_KEY],
'JS > Nest.js' 카테고리의 다른 글
[Nest] 이미지 업로드 구현V2 (0) | 2024.09.22 |
---|---|
[Nest] 이미지 업로드 구현 V1 (0) | 2024.09.22 |
[Nest] 커서기반 page 구현 (0) | 2024.09.21 |
[Nest] @Exclude => res에 비밀번호 제외, 직렬화 (0) | 2024.09.20 |
[Nest] DTO 구현, class-validator, message 구현 (0) | 2024.09.20 |