본문 바로가기

프로젝트 개발

(9)
23.12.27(오류 해결, 프로젝트 완성) todo하위 카테고리 등록 성공 > 수정 삭제 조회 성공하기레시피 등록할 때 카테고리도 등록 가능하게 수정하기 기획하던 것 중 포기한 것 - 회원탈퇴, 찜 기능, 이미지 aws등록 > 가라?로 프론트에서 준 파일 그대로 저장하기    카테고리 관련 문제  분명 넘버로 주고 있는데 넘버로 인식 못하고 있음상위는 등록 성공 / 하위는 넘버 이슈로 등록 실패   >>원인 찾아보기컨트롤러에서 number로 주고 있는데 @param으로 줄 때 스트링으로 인식하는 듯 @Post('/:topCategoryId') createSub(   @Param('topCategoryId', ParseIntPipe)  topCategoryId: number,  @Body() createSubDto: CreateSubDto, ): ..
23.12.25(전체적으로 수정, 파일 모델 추가) ERROR [AuthGuard] In order to use "defaultStrategy", please, ensure to import PassportModule in each place where AuthGuard() is being used. Otherwise, passport won't work correctly. AuthGuard() 쓰는 곳에 passportModule 삽입 import { PassportModule } from '@nestjs/passport'; @Module({ imports: [ TypeOrmModule.forFeature([Review]), AuthModule, RecipeModule, PassportModule, ], controllers: [ReviewControl..
23.12.22 (관계 설정 후 활용) 유저(1) - 레시피(n)와 1:n관계 리뷰(n) - 유저(1)랑 1:n관계 / 레시피(1)와 1:n 관계 찜(n) - 유저(1)랑 1:n관계 / 레시피(1)와 1:n 관계 파일 - 사진과 1:n관계 / 레시피와 n:m 관계 https://typeorm.io/#/many-to-one-one-to-many-relations @OneToMany(type => Board, board => board.user, {eager:true}) boards: Board[]; @ManyToOne(type => User, user => user.boards, {eager:false}) user: User; POST 할 때 유저 정보 넣어주기 @OneToMany(type => Recipe, recipe => recipe.us..
23.12.20 (레시피 모델 수정, 리뷰 모델 생성) 재료를 배열 안 객체로 수정해 ingredientUnit 삭제 @Column('json') ingredient: { item: string; unit: string }[]; 요리스텝도 배열 안 객체로 생성 @Column('json') step: { stepNum: number; des: string; imgUrl: string }[]; 지금까지 생성한 유저모델과 리뷰 모델과 관계설정 @ManyToMany(() => User, (user) => user.recipes) @JoinColumn() user: User; @ManyToOne(() => Review) review: Review; dto수정 > 배열 안에 들어가는 객체를 클래스로 만들어 유효성 검사 따로 들어가고 재료랑 스텝에 타입에 클래스로 만든 ..
23.12.18 (유저모델 수정, 레시피모델 추가) 일단 유저 모델에 이메일 키, 추가 import { IsEmail, IsNotEmpty } from 'class-validator'; import { BaseEntity, Column, Entity, PrimaryGeneratedColumn, Unique, } from 'typeorm'; export enum UserRole { ADMIN = 'admin', User = 'user', } @Entity() @Unique(['username']) export class User extends BaseEntity { @PrimaryGeneratedColumn() id: number; @Column() username: string; @Column() @IsNotEmpty() password: string; ..
23.12.14 (nest 공부 - 파이프, 유저관련) 파이프란 @injectable() 데코레이터로 주석이 달린 클래스 data transfromation과 data vaildation을 위해 사용됨 컨트롤러 경로 처리기에 의해 처리되는 인수에 대해 작동함 nest는 메소드 호출 직전에 파이프 삽입 > 파이프는 메소드로 향하는 인수 수신하고 이에 대해 작동 data transfromation - 입력 데이터를 원하는 형식으로 변환 (string > int) 숫자로 받아야 하는데 문자열로 오면 자동으로 숫자로 바꿔줌 > string to integer (string'7' > integer 7) data vaildation - 입력 데이터 평가하고 유효한 경우 변경되지 않은 상태로 전달함 데이터가 올바르지 않으면 에러 발생(varchar(10)인데 10자 이상..
23.12.13 (nest.js 공부-모듈+crud) nest 시작하기 > npm i -g @nestjs/cli >> nest new ./ >>npm고르기 앱 실행 = npm start:dev nest 앱 구조 앱 모듈(root) 안 보더 모듈과 어스모듈(유저)로 이루어짐 한 모듈마다 컨트롤러 서비스 엔티티 등을 한 폴더에 작성 eslintrc.js - 개발자들이 특정 규칙을 가지고 코드를 깔끔하게 짤 수 있게 도와주는 라이브러리 + 타입 가이드라인 제시 prettierrc - 줄 코드 형식 맞출 때 사용 > 코드 포맷터 역할 nest-cli.json - nest 프로젝트를 위해 특정한 설정 가능한 json 파일 tsconfig.json - 어떻게 타입 컴파일 할지 설정 tsconfig.build.json - tsconfig.json 연장선상 파일 > 빌드..
23.12.11 (초기기획) 주제선정부터 초기기획까지 굉장히 오래걸려 생각보다 피곤한 하루.. 설명하고 한명 한명 의견듣고 투표하고 또 이어서 설명으로 이어지다 보니 이렇게까지 안해도 될 것 같은데 너무 시간을 잡아먹힌것 같다 맨 처음 주제로 당근마켓처럼 중고거래 사이트로 정했다가 너무 클론코딩같다 해서 다시 또 회의하고 다음 주제로 정한게 레시피 공유 사이트였는데, 레시피 사이트에 들어가는 기능들이 다 엇비슷해서 좋은 기능 뽑아서 가져오되 디자인은 독창적으로 진행하기로 했다 (프론트의 할일 계속 상승중) 레퍼런스: 만개의 레시피 > 디자인이 너무 올드해 해외 등 최신 ui, ux를 쓰는 사이트도 참고하기로 함 페이지 흐름 메인페이지 카테고리 > 카테고리 선택으로 필터 + 추천순,최신순, 정확순 로그인 탭 > 모달창으로 띄우기 > ..