매일 열심히 일하지 않는 어제 반복하고 있는가? 자신의 관성을 극복 할 좋은,하지만 어려운 예상. 내일 너무 큰, 매우 중대하다.
@Post 방법
수입 {컨트롤러, 가져 오기, 필수, 쿼리, 헤더, 파람, 포스트, 바디} 에서 ' @ nestjs / 일반 ' ; @Controller ( ' 게시물 ' ) 수출 클래스 가 PostsController { @Get () 지수 (@Headers () 헤더) { 을 console.log (헤더) 리턴 [{제목 : ' 안녕하세요 ~ ' }]; } @Get ( ' : ID ' ) 쇼 (@Param () PARAMS ) { 반환 { 제목 :`포스트 $ { PARAMS .ID}` } } @Post () 저장소 (@Body () 체) { CONSOLE.LOG (본체) } }
DTO, 데이터는 네트워크를 통해 전송
post.dto.ts
수출 클래스 CreatePostDto { 읽기 전용 제목 : 문자열 ; }
@Post ()
저장 (@Body () 게시물 : CreatePostDto) {
을 console.log (post.title)
}
02.NEST.JS 애플리케이션 프레임 워크 : 코어 재 (1)
최신 버전의 둥지로 업그레이드 강제
둥지 업데이트 --tag 최신 --force
미들웨어!
미들웨어는 데모를 생성
둥지는 미들웨어 데모 코어 / 미들웨어를 생성
수입 {주사, NestMiddleware} 에서 ' @ nestjs / 일반 ' ; @Injectable () 수출 클래스 DemoMiddleware는 NestMiddleware {구현 (: 어떤, 고해상도 : 어떤, 다음 : REQ () 사용을 => 무효 ) { 다음 (); } }
서비스를 만들고,이를 사용하는 컨트롤러에 주입 할 수있다.
서비스 만들기
둥지는 서비스 데모 게시물 / 제공을 생성
수입 {주 사용} 에서 ' @ nestjs / 일반 ' ; @Injectable () 수출 클래스 DemoService {}
app.module.ts에서 자동으로 DemoService 서비스를 추가했다.
수입 {모듈} 에서 ' @ nestjs / 일반 ' ; 수입 {AppController가} 에서 ' ./app.controller ' ; 수입 {AppService} 에서 ' ./app.service ' ; 수입 {가 PostsController} 에서 ' ./posts/posts.controller ' ; 수입 {DemoService} 에서 ' ./posts/providers/demo/demo.service ' ; @Module ({ 수입 : [], 컨트롤러 : [AppController가,가 PostsController, 제공 : [AppService, DemoService], }) 수출클래스 AppModule {}
인터페이스 만들기
둥지 생성 인터페이스 후 게시물 / 인터페이스
재산의 유형의 정의에 포함되는 인터페이스, 그것은 모델 클래스입니까?
수출 인터페이스 포스트 { 제목 : 문자열 }
문자열을 소문자입니다.
서비스에서, 그것에 마우스, 수리를 선택합니다.
수입 {주 사용} 에서 ' @ nestjs / 일반 ' ; 수입 {포스트} 에서 ' SRC / 글 / 인터페이스 / post.interface ' ; @Injectable () 수출 클래스 DemoService { 개인 읽기 전용의 게시물 : 포스트 [] = []; findall은은 () : 포스트 [{ 반환 이 .posts 단계; } (게시물 : 포스트)를 만들 { 이 .posts.push (게시물); } }
서비스, 인터페이스, 구현 모델에 대한 참조. 모델과에 서비스를 추가하는 방법. 메소드의 반환 형식, 모델, 또는 인터페이스입니다 수 있습니다. 푸시의 인터페이스의 배열이며, 새로운 포스트를 작성.
제어기에서, 상기 방에, 종속 역할을한다. 컨트롤러를 구성함으로써 달성 주입 방법.
수입 {컨트롤러, 가져 오기, 필수, 쿼리, 헤더, 파람, 포스트, 바디} 에서 ' @ nestjs / 일반 ' ; 수입 {CreatePostDto} 에서 ' ./post.dto ' ; 수입 {DemoService} 에서 ' ./providers/demo/demo.service ' ; @Controller ( ' 게시물 ' ) 수출 클래스 가 PostsController { 개인 읽기 전용 demoService; 생성자 (demoService : DemoService) { 이 .demoService = demoService; } @Get () 지수 () { 반환 이 .demoService.findAll (); } @Get ( ' : ID ' ) 쇼 (@Param () PARAMS ) { 반환 { 제목 :`포스트 $ { PARAMS .ID}` } } @Post () 저장 (@Body () 게시물 : CreatePostDto) { 이 . demoService.create (POST); } }
도대체? ? ?
포스트에 정의 된 DTO 유형,
수출 클래스 CreatePostDto { 읽기 전용 제목 : 문자열 ; }
포스트 인터페이스에 정의 된 인터페이스,
수출 인터페이스 포스트 { 제목 : 문자열 }
서비스 인터페이스는 포스트에 사용되는
수입 {주 사용} 에서 ' @ nestjs / 일반 ' ; 수입 {포스트} 에서 ' SRC / 글 / 인터페이스 / post.interface ' ; @Injectable () 수출 클래스 DemoService { 개인 읽기 전용의 게시물 : 포스트 [] = []; findall은은 () : 포스트 [{ 반환 이 .posts 단계; } (게시물 : 포스트)를 만들 { 이 .posts.push (게시물); } }
제어기 라우팅 방법 파라미터는 방법이 차이가 무엇 물론 사후 서비스에 사용 된 인터페이스 파라미터 인 서비스 방법에서 수행된다 타입 포스트 DTO 사용?
@Post () 저장소 (@Body () POST : CreatePostDto) { 다음은이 .demoService.create (POST); }
컨트롤러 매개 변수를 정의 DTO 클래스, 포스트, 읽기 전용
CreatePostDto 포스트 DTO 유형은 읽기 전용으로 정의된다. 포스트는 인터페이스 유형, 값이 변수하지 읽기 전용입니다 추가 할 수 있습니다.
만들기 (POST : 포스트) { 다음은이 .posts.push (POST); }
방법은 우편, 인터페이스 유형 매개 변수 서비스에 정의 된
첫 번째 게시물은 데이터를 제출 한 후 모든 데이터는 방법을 얻을 수.