エクスプレスRESTfulルーティング



導入
以前、私はエクスプレスジェネレータで始める方法についてブログを書きました.あなたが急行でセットアップしようとしているならば、...このブログでは、私の最後の急行のブログからPiggybackに行くとルートの仕組みを理解するようになる.

資源
  • 私は非常にあなたがThe Postman App . テストフォームを構築せずに偽のデータを使用してデータベースを格納するHTTPリクエストをテストするのは本当に素晴らしいです.(i.e. [email protected] + somepassword1234 ) 最良の部分は、任意のライブラリ/フレームワークで動作します.それはロジックを処理する技術に完全に言語agnosticながら、これらのHTTPリクエストをテストします.

  • HTTPリクエスト
    前に要求を処理した場合は、などの基本的な要求に精通しているGET , POST , PUT , and DELETE .
    HTTPリクエスト

    意味
    ゲット
    投稿
    意味するGET またはユーザーの投稿を表示する
    ポスト
    投稿
    意味するPOST データベースへの情報この場合、新しい投稿を作成する
    プット
    /投稿/ID/編集
    意味するPUT , または更新情報.この場合、データベース内のIDでユーザーのポストを更新します.
    削除
    /投稿/ID
    意味するDELETE データベース内の情報.この場合、ユーザーのポストを削除します.
    合計7 HTTPリクエストがあります.GET , POST , PUT , HEAD , DELETE , PATCH and OPTIONS . 私たちはそれらの4つをカバーするだけです.

    路線
    あなたのルートの下でposts.js . このコードを設定します.
    const express = require('express');
    const router = express.Router();
    
    /* GET posts index /posts */
    router.get('/', (req, res, next) => {
      res.send('INDEX /posts');
    });
    
    /* GET posts new /posts/new */
    router.get('/new', (req, res, next) => {
      res.send('NEW /posts/new');
    });
    
    /* POST posts create /posts */
    router.post('/', (req, res, next) => {
      res.send('CREATE /posts');
    });
    
    /* GET posts show /posts/:id */
    router.get('/:id', (req, res, next) => {
      res.send('SHOW /posts/:id');
    });
    
    /* GET posts edit /posts/:id/edit */
    router.get('/:id/edit', (req, res, next) => {
      res.send('EDIT /posts/:id/edit');
    });
    
    /* PUT posts update /posts/:id */
    router.put('/:id', (req, res, next) => {
      res.send('UPDATE /posts/:id');
    });
    
    /* DELETE posts destroy /posts/:id */
    router.delete('/:id', (req, res, next) => {
      res.send('DELETE /posts/:id');
    });
    
    
    module.exports = router;
    
    今、内部app.js , 行5と11の間にこの行を適用します.
    const posts = require('./routes/posts');
    
    そして、この行21と27の間にある.
    app.use('/posts', posts);
    
    ここはどこですThe Postman App うまくいくでしょう.あなたが来た場合は、入力してサーバーを起動することができますnodemon あなたの端末に.使用The Postman App , 我々は、正しく動作していることを確認するために、各ルートをテストを開始することができます.各ルートからの応答は、正確に何の内側にあるでしょうres.send('string-information-here') それぞれのルート/HTTPのリクエストを自分の応答を提供します.

    これはすべてのルートファイルの正しいセットアップですか?
    最初にそう思うかもしれませんが、データベース内のすべてが必ずしも特定のアクションを必要としないということを理解することは重要です.つの例では、レビューを書いているときになります.それはレビューフォームのためだけに全体のルートを作成する意味がありますか?
    あなたが表示されるかもしれないユーザのポストと同じルートでそのフォームを付けるのはより良い意味を作りませんか?あなたが持っているアプリケーションの種類に応じて、あなたも、ユーザーが自分のレビューを削除する(任意の理由)をしたくないかもしれません.ポイントは、あなたが設定したルーティングのタイプは、アプリケーションの望ましい動作に非常に依存しています.あなたが自分自身のコードを書いて、狭いユースケースを実践しているよりも、これらの概念をより固くするためにここで書くことができた情報は全くありません.

    結論
    RESTfulルーティングはMVCフレームワークになると、ほぼ同じパターンになります.レールの背景にルビーから来て、Expressは例外ではないようです.MVCアーキテクチャを理解するのは、転送可能なスキルとして最適です.私は近い将来にエクスプレスについてのより多くのブログを書き続けているので、滞在を調整.😉
    何か質問があればコメントを残してください!喜んで答えます.

    フォローミー!
    Github/MatthewPalmer9