코드 오류 정리

ERROR [ExceptionHandler] Nest can't resolve dependencies of the BoardRepository (?). Please make sure that the argument DataSource at index [0] is available in the TypeOrmModule context.

jjong0425 2025. 1. 24. 17:08

→ NestJS에서 BoardRepository의 의존성을 해결할 수 없다는 것을 의미한다.

→ DataSource가 BoardRepository의 생성자에서 필요하지만, NestJS가 찾을 수 없다는 것을 의미한다.


 

해결방법

1.

import { TypeOrmModuleOptions } from '@nestjs/typeorm';
import * as dotenv from 'dotenv';

dotenv.config();

export const typeOrmConfig: TypeOrmModuleOptions = {
    type: 'mysql',
    host: process.env.DB_HOST,
    username: process.env.DB_USER,
    password: process.env.DB_PW,
    port: +process.env.DB_PORT, //+는 문자->숫자로 바꿔줌
    database: process.env.DB_NAME,
    entities: [__dirname + '/../**/*.entity.{js,ts}'],
    synchronize: true, // 개발중에만 true로 설정
    logging: true, // SQL 로그가 출력
};

DataSource의 설정 확인을 해보자. (오타가 있는지, env파일에 정의된 환경변수에 잘 맞는지 등)

 

2.

import { Module } from '@nestjs/common';
import { BoardsController } from './boards.controller';
import { BoardsService } from './boards.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Board } from './boards.entity';

@Module({
  imports: [
    TypeOrmModule.forFeature([Board]) // Board 엔터티를 TypeORM 모듈에 등록
  ],
  controllers: [BoardsController],
  providers: [BoardsService],
})
export class BoardsModule {}

TypeOrmModule을 설정하여 데이터베이스 연결을 설정해야 한다.

LIST