2019年10月30日

昨日に繰り返される日々努力しないのですか?良い予想されるが、自分自身の慣性を克服するのが難しいです。明日はとても素晴らしい、とても素晴らしいです。

 

@post方法

インポート{コントローラ、取得、必須、クエリ、ヘッダ、Paramの、ポスト、ボディ} から ' /共通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 {実装
  (:任意、RES:任意、次: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(ポスト)。
  } 
}

サービスに、インタフェース、実装モデルを参照します。モデル、およびにサービスを追加する方法。メソッドの戻り型、モデル、またはインタフェースであることができます。プッシュにおけるインターフェースのアレイに、新しいポストを作成します。

コントローラでは、部屋の中に、従属として機能します。コントローラを構成することによって達成注射の方法。

インポート{コントローラ、取得、必須、クエリ、ヘッダ、Paramの、ポスト、ボディ} から ' /共通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(ポスト)。
  } 
}

何地獄?

ポストに定義されたDTOタイプ、

輸出クラスCreatePostDto {
   読み取り専用タイトル:文字列; 
}

ポストインタフェースで定義されたインタフェース、

輸出インターフェースポスト{ 
  タイトル:文字列
}

サービスインタフェースは、ポストに使用されています

インポート{注射} から /共通nestjs @ 
インポート{ポスト} から ' SRC /ポスト/インターフェース/ post.interface ' 

@Injectable()
エクスポートクラスDemoService {
   プライベート 読み取り専用ポスト:ポスト[] = []; 

  findAll():ポスト[] { 
    戻り 、この.postsと、
  } 

  {(郵便ポスト)を作成し
    、この.posts.push(ポスト)。
  } 
}

コントローラの方法ルーティング、パラメータが使用されるタイプのポストDTOであり、この方法は、サービス方法で行われるもちろん、郵便サービスで使用されるインタフェースパラメータであり、違いは何ですか?

  @post()
  ストア(@Body()POST:CreatePostDto){ 
    この.demoService.create(POST); 
  } 
 コントローラパラメータが定義されたDTOクラス、ポスト、読み取り専用

CreatePostDtoポストDTOタイプは読み取り専用として定義されます。ポストは、インターフェイスタイプを追加し、読み取り専用、値が変数ではありません。

  作成(POST:POST){
     この.posts.push(POST); 
  } 
この方法は、ポスト、インターフェイス型パラメータサービスで定義され

 

 最初の投稿データを提出した後、すべてのデータは、メソッドを取得します。

 

おすすめ

転載: www.cnblogs.com/andu/p/11764851.html