resolver 제품 삭제 /* 프로덕트 삭제 */ @Mutation(() => Boolean) deleteProduct( @Args('productId') productId: string, // ): Promise { return this.productsService.delete({ productId }); } service import { Injectable, UnprocessableEntityException } from '@nestjs/common'; import { Repository } from 'typeorm'; import { Product } from './entities/product.entity'; import { InjectRepository } from '@nestjs/typeor..
NEST.js
검증절차 이전에 만들었던 priduct의 가격 부분에서 가격이 -이거나 소수점이면 안되기 떄문에 이런것들을 검증해야한다. nest에서 추가로 패키지 설치가 필요한데 yarn add class-validator class-transformer 로 설치한다. create product dto 에서 가격의 최소값이 0 Min(0) 으로 가격을 마이너스로 만들수 없게 만들었다. import { Field, InputType, Int } from '@nestjs/graphql'; import { Min } from 'class-validator'; @InputType() export class CreateProductInput { // @IsString() @Field(() => String) readonly n..
API 만들기 boards.resolver @Query(() => [Board], { nullable: true }) : 이 보드는 그래프ql에서 배열을 나타내는 것 fetchBoards(): Board[] 이 보도는 타입스크립트에서 배열을 나타내게 하는것 Args({ name: 'contents', nullable: true }) contents: string, // 필수값이 아니게 하려면 이런식으로 nullable 을 true import { Args, Mutation, Query, Resolver } from '@nestjs/graphql'; import { BoardsService } from './boards.sevice'; import { Board } from './entities/board..
제네릭을 쓰는이유 내가만든 함수의 타입을 지정할때 다른사람이 사용하거나 내가 다시 사용할 경우 어떤 타입을 써야하는지 알수없음 그럼 any를 쓰면되지만 any 를 쓰면 아무 타입이나 전부 허용하고 무슨타입인지 구분이 되지않음 이러면 타입스크립트를 쓰는 의미가 없어짐 그래서 아무 타입이나 전부 사용 할 수 있지만 타입의 구분이 가능한 Generic을 사 Generic 타입 // 문자 / 숫자 /불린 기본타입 // 1. 문자/숫자/불린 기본타입 const getPrimitive = (arg1: string, arg2: number, arg3: boolean): [boolean, number, string] => { return [arg3, arg2, arg1]; }; const result = getPrim..
@Injectable() : 디폴트값 싱글톤(new 하나) @Injectable(scope:requst): 매 요청마다 new 로 @Injectable(scope: Transient) 매 주입마다 new code first graphql 패키지 설치 yarn add @nestjs/graphql @nestjs/apollo @apollo/server graphql resolver 로 변경 컨트롤러가 없어짐 Query() 로 변경 import { Query, Resolver } from '@nestjs/graphql'; import { BoardsService } from './boards.sevice'; @Resolver() export class BoardsResolver { constructor(priv..
app.module : index 대용 의존성을 넣어주는 역할 담당 app.controller : 앤드포인트를 작성 하는 부분 app.service : express 쪽 의존성 주입 index.js 에서 api 요청을 받아서 controller 부분으로 넘겨줌 controller 부분에선 new 를 사용하지 않고 의존성을 주입받음 그 의존성을 주입하는 부분이 index 이고 nest에서는 이것이 module 이다. 네스트 의존성주입 module 의 provider 부분에서 의존성을 주입함 컨트롤러는 의존성을 받고 그 때문에 return 에 this 를 적음 private readonly : 클래스 안에서만 접근가능하면서 읽기만 가능 private : 클래스 안에서만 접근가능 readonly : 수정은 불..