昨日に繰り返される日々努力しないのですか?良い予想されるが、自分自身の慣性を克服するのが難しいです。明日はとても素晴らしい、とても素晴らしいです。
@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); }
この方法は、ポスト、インターフェイス型パラメータサービスで定義され
最初の投稿データを提出した後、すべてのデータは、メソッドを取得します。