2017-11-13 15 views
3

両方の方法で記述されたコードを見てきました。Expressのrouter.METHOD()とrouter.route()メソッドの違いは何ですか?

router.get(path, callback) 

router.route(path).get(callback) 

彼らは同等になり、周囲のコードから。ドキュメントはここにある:

router.route

router.METHOD

はどこ方法なぜこれを行うには二つの方法があるなど、

getpostすることができますか?私はドキュメントを読んだが、あまり役に立たなかった。

答えて

1

router.METHOD(パス)

router.methods()メソッドは、PUT、GETなどのHTTPメソッドの一つであるエクスプレス、でルーティング機能を提供する、POST

router.get(path,callback); 

router.route(パス)

HTTPメソッドを処理するために使用できる単一のルートのインスタンスを返します。

また、ルートネーミングが重複するのを避け、タイプミスを避けることができます。

したがって、すべてのhttpハンドラを一度に定義することができます。

router.route(path).get(callback).put(callback).post(callback).delete(callback); 
0

ように私はいつもONEコールバックで処理ONE方法、ONEパスは、だから、router.METHOD(path, callback)

を使用しています。

名前を付けた2番目のメソッドは、複数のメソッドを処理する1つのパスを持つことができます。

したがって、getpostの両方の方法をパス/userに設定することができます。

セットアップしたい場合は、例えば、このようなCRUDルートのようなもの:あなたが各ルートに一意のパスを持つようにしたいと

enter image description here

それから私は、あなたがrouter.METHOD(path, callback)アプローチを使用することをお勧めします。

1

これは、expressによって提供されるルータオブジェクトの2つの方法です。ドキュメントによると、ルータオブジェクトに関連する合計5つのメソッドがあります。

具体的にはrouter.METHOD() & router.route()となっていますので、これらの2つの方法にのみ焦点を当てます。

まず、router.MEHTOD()の方法を考えてみましょう。入力された要求を提供されたパスと単に照合し、使用されているMETHODに従って適切なアクションを実行します。メソッドは、get、put、postなどのHTTPメソッドの1つです。ここでは、このような異なる命名規則に対処するのが面倒になることがあり、重複したルート命名につながり、最終的には大規模で複雑なアプリを扱うとき。

しかし、router.route()メソッドの場合、http動詞で使用できる単一のルート(パスが提供されている)のインスタンスを返します。提供されたパスを再利用することで、混乱を避け、コードをきれいに見せてエラーの可能性を減らします。

関連する問題