1. CLI로 유저 모델 만들기

Untitled

2. 실제 usersModel 만들기

import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';

enum Role {
  USER = 'user',
  ADMIN = 'admin',
}

@Entity()
export class UsersModel {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({
    unique: true,
  })
  nickname: string;

  @Column({
    unique: true,
  })
  email: string;

  @Column({
    type: 'enum',
    enum: Object.values(RoleEnum),
    default: Role.USER,
  })
  role: Role;

  @Column()
  password: string;
}

3. User Service와 Controller 기능 작성

  1. user.Service에서 repository를 쓰기 위해서는 users.module에다가 imports 프로퍼티로 UserModel를 리스트에 넣어준다. (모듈 안에서 userModel을 사용할수 있게됨)
@Module({
  imports: [TypeOrmModule.forFeature([UsersModel])],
  controllers: [UsersController],
  providers: [UsersService],
})
export class UsersModule {}
  1. usersService에서 써야한다.

  2. user 생성 API 만들기

    async createUser(email: string, nickname: string, password: string) {
        const user = this.userRepository.create({
          email,
          nickname,
          password,
        });
        // DB에 save
        const newUser = await this.userRepository.save(user);
    
        return newUser;
      }
    
  3. controller에서 라우팅 하기

    @Post()
      postUser(
        @Body('nickname') nickname: string,
        @Body('email') email: string,
        @Body('password') password: string,
      ) {
        return this.usersService.createUser(email, nickname, password);
      }
    
  4. /users로 Post 요청 보내ㄱㅣ

    {
        "nickname": "jamsilcrop",
        "email": "[email protected]",
        "password": "123123123",
        "id": 1,
        "role": "user"
    }