본문 바로가기

캡스톤 설계 [건물별 소통 플랫폼 BBC]/개발 진행

댓글 테이블 수정 및 댓글 생성 dto 수정 [PickType] 게시글에 속한 댓글들을 가져오기 위해 댓글 생성시 어떤 게시글의 댓글인지를 받아오기 위해 수정. 차후 next로 프론트 단을 구성하며 parms로 받을것 같지만 우선은 body에 넣어서 댓글 테이블에 게시글의 idx가 저장되도록 수정. . . 우선 댓글 테이블에 따로 postIdx를 구성 ManyTwoOne의 속성인 Post나 CommentPostIdx를 사용하는것이 아니라 따로 속성하나를 만들어 줬어야 했다. npm i @nestjs/swagger PickType을 사용하기 위해 패키지 설치 위와 같이 Comment 테이블에 있는 속성임을 확신 받았다. 댓글 생성시 post의 idx 까지 저장됨을 확인 더보기
댓글과 게시물 관계(일대다) 설정 및 댓글 조회하기 댓글 조회 하기 api를 만들기 이전에 게시물처럼 모든 게시물을 무작정 가져오는것이 아니라 특정 게시물에있는 댓글들을 조회하려한다. 그러면 우선 게시물과 댓글간의 관계를 파악한 후 외래키 설정을 해야한다. . . 기본적으로 한 게시물에 여러댓글이 달릴수 있으며 한 댓글이 여러 게시물을 가질 수 없으므로 게시물과 댓글은 일대다 관계이다. . . Post.ts Comment테이블의 가상의 Post 라는 속성을 참조한다. Comment.ts Post라는 테이블의 가상의 Comments라는 속성을 참조한다. 앞으로의 관계설정시에 필요한 가상의 속성들은 앞의 문자를 대문자로 할것이다. . . 참조를 하는 테이블(외래키가 있는곳)에 Join 데코레이터를 붙인다. (나의 이 댓글이 어떤 게시물에 속해 있는지) . ... 더보기
댓글 생성하기 nest g module comment nest g controller comment nest g service comment comment 모듈, 컨트롤러, 서비스 단 생성 댓글 생성하기 컨트롤러 및 서비스단 코드 및 댓글 생성 dto 포스트맨을 사용해서 api 통신이 잘됨을 확인하고 데이터베이스에도 잘 저장되는걸 확인. 더보기
댓글 엔티티 생성 CREATE TABLE `Comment` ( `commentIdx` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `comment` VARCHAR(100) NOT NULL, `commentAnonymous` BOOLEAN NOT NULL DEFAULT TRUE, `commentLike` INT NOT NULL DEFAULT 0, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL ); 데이터 베이스에 Post 테이블 생성 Comment 엔티티 생성 후 appmodule에 추가 서버 켜보니 이상 무 Comment 엔티티 생성 완료 더보기
특정 게시물 조회, 수정, 삭제 특정 게시물 조회 컨트롤러단과 서비스단 특정 게시물 조회하기 성공 특정 게시물 업데이트 컨트롤러단과 서비스단 특정 게시물 업데이트하기 성공 특정 게시물 삭제 컨트롤러단과 서비스단 특정 게시물 삭제하기 성공 더보기
게시판 생성하기 및 모두 조회하기 nest g module post nest g controller post nest g service post post 모듈, 컨트롤러, 서비스 단 생성 컨트롤러 생성 서비스단 완성 포스트맨을 사용해서 api 통신이 잘됨을 확인하고 데이터베이스에도 잘 저장되는걸 확인. + 추가로 게시물 모두 조회하기 기능을 만들기 위해 몇개 더작성 게시물 모두 조회하기 컨트롤러 생성 게시물 모두 조회하기 서비스단 완성 포스트맨으로 조회시 성공적으로 모든 게시물들이 조회됨을 확인 더보기
게시판 엔티디 생성 CREATE TABLE `Post` ( `postIdx` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `postTitle` VARCHAR(30) NOT NULL, `postContent` VARCHAR(300) NOT NULL, `postAnonymous` BOOLEAN NOT NULL DEFAULT TRUE, `postImage` TEXT NULL, `postLike` INT NOT NULL DEFAULT 0, `buildingName` VARCHAR(20) NOT NULL, `chatRoomTitle` VARCHAR(20) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL ); 데이터 베이스에 P.. 더보기
Class-vaildator 유효성 체크 이전에는 빈 문자열이나 이메일 형식이 아니라도 회원가입이 되었다. 이런 형식에 맞지 않는 데이터를 사용자가 입력해서 데이터베이스가 혼란스러워지는것을 막고자 유효성 체크를 최대한 해보려한다. npm install class-validator class-transformer 총 3가지 레벨로 유효성 체크를 진행할수 있다. 1. 파라미터 레벨 2. 핸들러(함수) 레벨 3. 글로벌(전역) 레벨 . . 나는 전체적으로 다 유효성을 체크가 되길 원하기 때문에 우선은 전역적으로 글로벌 레벨로 적용을 했다. email 뿐만 아니라 다른 인자에서도 유효성체크를 해주었으며 우선 이메일 형식인지와 최소 최대 길이만 체크했다. 위와 같이 이메일 형식이 아닌경우와 최소 최대 길이를 넘지 못하거나 초과한 경우 에러 메세지와 함께.. 더보기