エクスプレスRESTfulルーティング
9810 ワード
導入
以前、私はエクスプレスジェネレータで始める方法についてブログを書きました.あなたが急行でセットアップしようとしているならば、...このブログでは、私の最後の急行のブログからPiggybackに行くとルートの仕組みを理解するようになる.
資源
[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
Reference
この問題について(エクスプレスRESTfulルーティング), 我々は、より多くの情報をここで見つけました https://dev.to/matthewpalmer9/express-restful-routing-1lm1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol