* 각각의 클래스에 각자의 변수를 넣어야함.
@Entity()
@Unique(['username'])
export class User extends BaseEntity{
...
//상대의타입, 상대방에서 나를 부르는 별칭, this(user)를 가져올때 상대방(board)도 가져오도록
@OneToMany(type => Board, board => board.user, {eager: true})
boards: Board[]
@Entity()
export class Board extends BaseEntity{
...
@ManyToOne(type => User, user=>user.boards, {eager: false})
user: User;
* 게시글 생성시 유저 정보 넣기
* 컨트롤러
여기서 이전에 만든 @GetUser를 이용 => user 정보얻어와서 매개변수로 전달.
@Post()
@UsePipes(ValidationPipe)
createBoard(@Body() createBoardDto : CreateBoardDto, @GetUser() user : User) : Promise<Board> {
return this.boardsService.createBoard(createBoardDto, user);
}
연관된 서비스에 매개변수 추가
createBoard(createBoardDto : CreateBoardDto, user: User): Promise<Board>{
return this.boardRepository.createBoard(createBoardDto, user);
}
리포지토리에서 db에 넣을때, user정보도 넣기.
async createBoard(createBoardDto : CreateBoardDto, user: User): Promise<Board>{
const {title,description} = createBoardDto;
//db생성시 .create 이용해야
const board = this.create({
// id : uuid(), //자동으로 유니크한 값을 넣어줌
title : title,
description : description,
status : BoardStatus.PUBLIC,
user
})
'JS > Nest.js' 카테고리의 다른 글
[Nest JS] 자신이 생성한 게시물만 삭제 (0) | 2024.08.19 |
---|---|
[Nest JS] 특정 유저의 게시물 가져오기 (0) | 2024.08.19 |
[Nest JS] 인증된 유저만 게시글 보고쓰기 구현 (0) | 2024.08.19 |
[Nest JS] 커스텀 데코레이터(@) => 바로 user 가져오기 (0) | 2024.08.18 |
[Nest JS] Passport , jwt => 토큰인증후 유저정보 가져오기 / @UseGuard 미들웨어 (0) | 2024.08.18 |