inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

환경변수 설정 시 Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string 라는 에러가 납니다.

1392

김태수

작성한 질문수 2

0

안녕하세요. 환경변수 설정 간 TypeOrmModule.forRoot()를 설정하는 구간에서

강의대로 process.env로 .env에 있는 키들을 받아오려 하니 제목과 같은 에러가 납니다.

구글링을 해보았는데, forRootAsync를 활용하라는 말 등은 있지만 저 에러가 동일하게 구현된 사례는 없었습니다. 혹시 제가 어떤 잘못을 했는지 궁금하여 질문을 남깁니다. 강의 정말 잘 보고 있습니다. 감사합니다.

 

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'postgres',
      host: process.env[ENV_DB_HOST],
      port: parseInt(process.env[ENV_DB_PORT]),
      username: process.env[ENV_DB_USERNAME],
      password: process.env[ENV_DB_PASSWORD],
      database: process.env[ENV_DB_DATABASE],
      synchronize: true,
    }),
    CommonModule,
    ConfigModule.forRoot({
      envFilePath:
        process.env.NODE_ENV === 'production'
          ? '.env.production.local'
          : '.env.development.local',
      isGlobal: true,
    }),
    AuthModule,
    UsersModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

 

// .env.development.local
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5430
DB_USERNAME=123123
DB_PASSWORD=123123
DB_DATABASE=123123

 

// constants.ts
export const ENV_DB_HOST = 'DB_HOST';
export const ENV_DB_PORT = 'DB_PORT';
export const ENV_DB_USERNAME = 'DB_USERNAME';
export const ENV_DB_PASSWORD = 'DB_PASSWORD';
export const ENV_DB_DATABASE = 'DB_DATABASE';

 

// 에러 메세지
Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string

 

javascript typescript rest-api nestjs backend

답변 2

0

berrycore

저도 동일한 에러 메시지가 뜨길래 다음과 같이 해결 하였습니다.

참고 하시면 좋겠습니다.

-> TypeOrmModule.forRoot 보다 ConfigModule.forRoot상단에 위치하도록 import 순서를 변경.

imports: [
    ConfigModule.forRoot({
      envFilePath: '.env',
      isGlobal: true,
    }),
    TypeOrmModule.forRoot({
      type: 'postgres',
      host: process.env[ENV_DB_HOST_KEY],
      port: parseInt(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],
      entities: [PostsModel, UsersModel],
      synchronize: true,
    }),

    PostsModule,
    UsersModule,
    AuthModule,
    CommonModule,
  ],

 

 

0

코드팩토리

안녕하세요!

제 생각엔 SASL 문제가 '실제로' 존재해서 뱉는 애러는 아닐 것 같습니다.

무언가 다른 부분에서 실수로 버그를 만들었는데 SASL 에러로 연결되는 것 같습니다.

ENV 관련 문제가 확실하다면 ENV 파일에서 값을 읽어오는데 버그가 있을 수 있습니다. (스펠링 에러등)

한번 더 확인 해보시고 답변 부탁드립니다.

감사합니다!

cascade 질문

0

39

1

@types/bcrypt 설치과정이 누락된것같습니다.

0

47

1

process.env port key 에러

0

46

1

추상화

0

49

1

[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상

0

94

2

where 키워드가 들어가는 메서드와 아닌 메서드

0

56

1

BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?

0

69

1

app.controller app.service 는 지워도되나요?

0

69

1

@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이

0

78

1

포트 3000에서 listen하는 곳까지 넘어가지 않습니다.

0

66

1

PickType 사용 시 `as const`를 꼭 사용해야 하나요?

0

102

2

socket connect 오류

0

96

2

강의를 들으면서 궁금한 점

0

97

2

DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?

0

60

2

커리큘럼 질문

0

98

2

put 요청은 언제

0

90

3

typeorm VS prisma

0

347

2

142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.

0

76

2

User 데코레이터 버그 수정 전달드립니다.

0

67

1

git 주소 부탁드립니다.

0

112

2

nest g resource 명령어 에러

0

99

2

로그인 엔드포인트 관련 질문

0

84

2

yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우

0

146

3

"흔히 사용되는 메서드" 강의 관련 질문입니다~

0

95

2