JS
![[Nest JS] 회원가입 구현 / TypeError: this.userRepository.createUser is not a function 해결](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbswcIj%2FbtsI5MFlxWr%2F8KqwLTgPinr23EiT6wrKhk%2Fimg.png)
[Nest JS] 회원가입 구현 / TypeError: this.userRepository.createUser is not a function 해결
* dto 생성export class AuthCredentialsDto{ username : string; password : string;}* 리포지토리에서 db 접근 메소드 구현@Injectable()export class UserRepository extends Repository{ constructor(dataSource: DataSource) { super(User, dataSource.createEntityManager()); } async createUser(authCredentialsDto : AuthCredentialsDto){ const {username, password} = authCredentialsDto; const user = this.create({u..
![[Nest JS] 인증 구현 준비 (컨트롤러, 서비스, 리포지토리 생성)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccV5dW%2FbtsI76BSz0c%2Fr1RQpPURKA5VDpvxqty1m1%2Fimg.png)
[Nest JS] 인증 구현 준비 (컨트롤러, 서비스, 리포지토리 생성)
* user table 생성import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from "typeorm";@Entity()export class User extends BaseEntity{ @PrimaryGeneratedColumn() id: number; @Column() username: string; @Column() password: string;}* repository 생성import { Injectable } from "@nestjs/common";import { DataSource, Repository } from "typeorm";import { User } from "./user.entity";@Injectable()e..
![[Nest JS] 모든 게시글 조회](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKECuq%2FbtsI6hyqxqI%2F2lrJuaCovr3jyerPvsUhh1%2Fimg.png)
[Nest JS] 모든 게시글 조회
* 서비스async getAllBoards(){ return this.boardRepository.find(); //매개변수없음 -> 모든것 가져옴}* 컨트롤러@Get()getAllBoard(){ return this.boardsService.getAllBoards();}
![[Nest JS] 게시글 업데이트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqsph0%2FbtsI6ZqaMnj%2FP7bBgTkqkGKZKz8cDXYDNk%2Fimg.png)
[Nest JS] 게시글 업데이트
* 서비스async updateBoardStatus(id: number, status:BoardStatus): Promise{ const board = await this.getBoardById(id); board.status=status; await this.boardRepository.save(board); return board;}* 컨트롤러id/status 형식으로 url을 줘야함 && body로 json을 줘야함 { status : private}ex) localhost3000:boards/4/status body : {status : private}@Patch('/:id/status') //수정은 patchupdateBoardStatus(@Param('id..
![[Nest JS] 게시글 삭제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWdEE3%2FbtsI7kniPTz%2FsUui3w0cNSexGOiPBVNeI1%2Fimg.png)
[Nest JS] 게시글 삭제
* 메소드 선택* 컨트롤러@Delete('/:id')deleteBoard(@Param('id', ParseIntPipe) id: number){ //제공되는 파이프로 검사해주시고 return this.boardsService.deleteBoard(id);}*서비스async deleteBoard(id : number){ return this.boardRepository.delete(id); //기본제공되는 delete 사용} * 없는경우 예외처리affected 속성을 이용하여 예외처리 구현.async deleteBoard(id : number){ const result = await this.boardRepository.delete(id); //기본제공되는 delete 사용 if(result.a..
![[Nest JS] 게시글생성 db / typeOrm 3.0 issued 해결 / @EntityRepository 해결](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOg6cH%2FbtsI6uYxBGT%2FaJNKplLefk5aWG6ySHjhxK%2Fimg.png)
[Nest JS] 게시글생성 db / typeOrm 3.0 issued 해결 / @EntityRepository 해결
* serviceasync createBoard(createBoardDto : CreateBoardDto): Promise{ const {title,description} = createBoardDto; //db생성시 .create 이용해야 const board = this.boardRepository.create({ // id : uuid(), //자동으로 유니크한 값을 넣어줌 title : title, description : description, status : BoardStatus.PUBLIC }) await this.boardRepository.save(board); return board;} * controller@Post..
![[Nest JS] memory repository 2 DB repository / 게시글 조회 /](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJ8S5X%2FbtsI5R0ZMpJ%2FjpKtToKiia4Bz67MjOBwT1%2Fimg.png)
[Nest JS] memory repository 2 DB repository / 게시글 조회 /
import { Injectable, NotFoundException } from "@nestjs/common";import { BoardStatus } from "./board-statuss.enum.";import {v1 as uuid} from 'uuid';import { CreateBoardDto } from "./dto/create-board.dto";import { InjectRepository } from "@nestjs/typeorm";import { BoardRepository } from "./board.repository";@Injectable()export class BoardsService { constructor( @InjectRepository(BoardRepositor..
![[Nest JS] Repository 구현 / @EntityRepository issue](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcltxDM%2FbtsI77Of3u8%2F2LlCig40IQXILBdbSob6G0%2Fimg.png)
[Nest JS] Repository 구현 / @EntityRepository issue
* Repository ? 이전 : service에서 memory repository 사용개선 : db 관련일은 repository 에서 처리함 1. 리포지토리 클래스 생성import { EntityRepository, Repository } from "typeorm";import { Board } from "./board.entity";@EntityRepository(Board) //Board를 컨트롤하는 db임을 선언export class BoardRepository extends Repository{ } 2. 보드 모듈에 임포트 => 여러곳에서 사용import { Module } from '@nestjs/common';import { BoardsController } from './boards..