1. ホーム
  2. node.js

[解決済み] app.all('*')とapp.use('/')の違いについて

2022-06-22 23:26:42

質問

の間に有用な違いはありますか? app.all("*", … )app.use("/", … ) をNode.js上で動作するExpress.jsで使用できますか?

どのように解決するのですか?

ほとんどの場合、同等に動作します。最大の違いは、ミドルウェアを適用する順序です。

  • app.all() はアプリケーションのルータにアタッチされます。 app.router ミドルウェアに到達するたびに使用されます (これはすべてのメソッドルートを処理します...)。 GET , POST など)。

注意 app.router は express 4.x で非推奨となりました。

  • app.use() はアプリケーションのメインミドルウェアスタックにアタッチされるので、ミドルウェアによって指定された順序で使用されます。例えば、これを最初に置くと、最初に実行されます。例えば、これを最初に置くと、最初に実行されます。これを最後に置くと (ルーターの後に)、通常はまったく実行されません。

通常、すべてのルートに対してグローバルに何かを行いたい場合。 app.use() がより良い選択肢です。また、express 0.4 ではおそらく暗黙のルータが削除されるため、将来のバグの可能性も低くなります(つまり、ミドルウェアにおけるルータの位置は今よりも重要になり、技術的には今すぐ使う必要さえないためです)。