이번엔 어제 마무리 못지은 TypeORM을 마무리 짓도록 하겠습니다.
사용할 컨트롤러 부분에 코드를 추가해줍시다!
사용하기 전에 생성자가 타입을 설정해주는 것이 중요하므로 생성자 타입을 수정해주는 코드를 적어주고
constructor(private readonly userdataservice: UserdataService) {}
데이터가 많을 경우 데이터 받아오는 과정에서 시간이 걸릴 수 있으므로 비동기 처리를 시켜주게 해줍시다!
@Get()
async getdata() {
const data = await this.userdataservice.getData()
return data;
}
그리고 AppModule에서 일어난 에런데.. 종속성을 찾지 못하는 에러
Nest can't resolve dependencies of the LoginController (?). Please make sure that the argument UserdataService at index [0] is available in the AppModule context.
이런 에러가 발생한다면 에러 명만 읽고 복붙해서 찾지말고 아래에 solution제공도 있으니 꼭 확인하세요..ㅠ
그리고 app.module부분에 정보들이 들어간게 아쉽긴한데 나중에 env파일을 이용하여 변경하도록 하겠습니다 ㅎ
어쨌든 이렇게 완성할 수 있었습니다! 나중에 잊어버려서 헤매지 않게 간단하게 요약하고 가겠습니다!
userdata.service - 생성자 유의한 후 메서드 추가
@InjectRepository(Userdata)
private usersRepository: Repository<Userdata>,
) {}
userdata.module - 제공자 사용
imports: [TypeOrmModule.forFeature([Userdata])],
providers:[UserdataService],
exports: [TypeOrmModule]
login.controller - 생성자 사용
constructor(private readonly userdataservice: UserdataService) {}
app.module - providers에 userdataservice추가 및 forRoot 지정
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: '127.0.0.1',
port: 3306,
username: 'root',
password: '0112',
database: 'test',
entities: [Userdata],
synchronize: true,
}),
DashboardModule, LoginModule, UserdataModule],
controllers: [AppController, DashboardController, LoginController],
providers: [AppService, DashboardService,UserdataService],
})