๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[Nest JS ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ] (21) ์ธ์ฆ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•œ ์ค€๋น„ ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐฑ์—”๋“œ(Back-End)/Nest js

[Nest JS ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ] (21) ์ธ์ฆ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•œ ์ค€๋น„

์ง•์ง•์•ŒํŒŒ์นด 2023. 6. 7. 19:59
728x90
๋ฐ˜์‘ํ˜•

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” John Ahn ์˜ ์œ ํŠœ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค :-)>

=> ๋”ฐ๋ผํ•˜๋ฉด์„œ ๋ฐฐ์šฐ๋Š” NestJS

 

๐Ÿงธ ์ธ์ฆ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•œ ์ค€๋น„ 

๐ŸŽ€CLS ๋ฅผ ์ด์šฉํ•œ ๋ชจ๋“ˆ, ์ปจํŠธ๋กค๋Ÿฌ, ์„œ๋น„์Šค ์ƒ์„ฑ

// auth ๋ชจ๋“ˆ ์ƒ์„ฑ
nest g module auth

// auth ์ปจํŠธ๋กค๋Ÿฌ ์ƒ์„ฑ
nest g controller auth --no-spec

// auth ์„œ๋น„์Šค ์ƒ์„ฑ
nest g service auth --no-spec

 

๐Ÿงธ User๋ฅผ ์œ„ํ•œ Entity ์ƒ์„ฑ 

์œ ์ €์— ๋Œ€ํ•œ ์ธ์ฆ์„ ํ•ด์•ผํ•˜๋ฏ€๋กœ, ์œ ์ €๊ฐ€ ํ•„์š”ํ•จ

์œ ์ € ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ ์œ ์ € Entity ์ƒ์„ฑํ•˜๊ธฐ

 

๐ŸŽ€ user.entity.ts

import { BaseEntity, Column, PrimaryColumn, PrimaryGeneratedColumn } from "typeorm";

export class User extends BaseEntity {
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    username: string;

    @Column()
    password: string;
}

 

๐Ÿงธ User๋ฅผ ์œ„ํ•œ Repository ์ƒ์„ฑ 

User Entity๋ฅผ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์˜ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Repository ์ƒ์„ฑํ•˜๊ธฐ

 

๐ŸŽ€ user.repository.ts

import { EntityRepository, Repository } from "typeorm";
import { User } from "./user.entity";

@EntityRepository(User)
export class UserRepository extends Repository<User> {

}

 

๐Ÿงธ Repository Injection

User Repository ๋ฅผ auth Service ์•ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ ์ € ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ์— ๋„ฃ๊ธฐ

 

๐ŸŽ€ auth.service.ts

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { UserRepository } from './user.repository';

@Injectable()
export class AuthService {
    constructor(
        @InjectRepository(UserRepository)
        private userRepository: UserRepository,
    ) {}
}
728x90
๋ฐ˜์‘ํ˜•
Comments