import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersModule } from './users/users.module';
import { TypeOrmModule } from "@nestjs/typeorm";
@Module({
imports: [
UsersModule,
TypeOrmModule.forRoot({
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'postgres',
password: 'postgres',
database: 'postgres',
entities: [], //생성할 모델들
synchronize: true, //typeorm 코드와 db싱크를 맞출건지 (개발에서만 써라)
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
* No metadata for "PostsModel" was found 문제해결
- 문제 : @Entitiy()를 한후 저장해도 테이블이 안생김
- 해결 : app.모듈 > 엔티티에 추가
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity() //테이블생성해줘
export class PostsModel {
@PrimaryGeneratedColumn()
id: number;
@Column()
author: string;
@Column()
title: string;
@Column()
content: string;
@Column()
likeCount: number;
@Column()
commentCount: number;
}
* 의존성주입 하는법
- 모듈에서 import
- import하면 DI Container에 올라가는듯
import { Module } from '@nestjs/common';
import { PostsService } from './posts.service';
import { PostsController } from './posts.controller';
import { TypeOrmModule } from "@nestjs/typeorm";
import { PostsModel } from "./entities/posts.entity";
@Module({
imports:[
TypeOrmModule.forFeature([
PostsModel
]),
],
controllers: [PostsController],
providers: [PostsService],
})
export class PostsModule {}
- 서비스의 생성자에서 매개변수 선언 (생성자 주입)
@Injectable()
export class PostsService {
constructor(
@InjectRepository(PostsModel)
private readonly postsRepository: Repository<PostsModel>) {
}
'JS > Nest.js' 카테고리의 다른 글
[Nest] enum => 값 제한 하기 (0) | 2024.09.18 |
---|---|
[Nest] CRUD 구현, body 받는법 (0) | 2024.09.17 |
[Nest] Dependency Injection 의존성 주입 (0) | 2024.09.17 |
[Nest JS] 환경변수 설정 / configuration property is not defined 해결 / github 캐시 지우는법 (0) | 2024.08.19 |
[Nest JS] 로그 구현 (0) | 2024.08.19 |