[解決済み] Expressにおけるapp.use()とrouter.use()の相違点
2022-12-18 15:16:50
質問
expressのドキュメントを読んでいたら、以下の2つの用語が見つかりました。
app.use();
と
router.use();
私が知っているのは
app.use();
は node で
ミドルウェアのマウント
をパスでマウントするために使われ、ほとんどのnodeアプリでよく使われます。
router.use();
は同じなのか、違うなら何が違うのか?
私はルーターについて読みました ここで . 私はまた、SOで同様の質問を見つけた express.Routerとapp.getを使ったルーティングの違いは何ですか? と app.all('*')とapp.use('/')の違いについて教えてください。 は、しかし、彼らは本当に私の質問に答えるものではありません。ありがとうございます。
どのように解決するのですか?
router.get
はサブパスを定義するためだけのものです。この例で考えてみましょう。
var router = express.Router();
app.use('/first', router); // Mount the router as middleware at path /first
router.get('/sud', smaller);
router.get('/user', bigger);
-
もし、あなたが
/first/sud
とすると
smaller
関数が呼ばれます。 -
もしあなたが
/first/user
を開くと
bigger
関数が呼ばれます。
要するに
app.use('/first', router)
はミドルウェアをパス
/first
で、次に
router.get
はそれに応じてサブパスを設定します。
しかし、代わりに以下のようにすると
app.use('/first', fun);
app.get('/sud', bigger);
app.get('/user', smaller);
-
もし、あなたが
/first
をブラウザで表示します。
fun
が呼び出されます。 -
の場合
/sud
,
bigger
が呼ばれます。 -
の場合
/user
,
smaller
が呼び出されます。
しかし /first/sud については、どの関数も呼び出されないことを覚えておいてください。
このリンクも役に立つかもしれません。 http://expressjs.com/api.html#router
関連
-
[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] AWS s3 api error: specified bucket does not exist.
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] -saveと-save-devの違いは何ですか?
-
[解決済み] package.jsonのチルダ(~)とキャレット(^)の違いは何ですか?
-
[解決済み] npm package.jsonファイルのdependencies, devDependencies, peerDependenciesの違いは何ですか?
-
[解決済み】express.jsのapp.useとapp.getの違いについて
-
[解決済み】NodeJS / Express: "app.use "とは何ですか?
-
[解決済み] Express 4.x で "./bin/www" は何をするのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】Discord.js が特定のチャンネルにメッセージを送信する場合
-
[解決済み】"npm update -g" の後に "Cannot find module 'npmlog'" というエラーが発生する。
-
[解決済み】MongoDBのデータ/DBが見つからない
-
[解決済み] Expectアサーションの型エラー -> expect(...).toExistは関数ではない
-
[解決済み] ブラウザで動作しているURLで「connect ETIMEDOUT」エラーが発生する原因は何ですか?
-
[解決済み] nodejs - http.requestでresponse.writeを使用する場合、第一引数は文字列またはBufferでなければなりません。
-
[解決済み] ランタイム 'node' が PATH で見つからない - Visual Studio Code と Node.js
-
[解決済み] エラーです。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりません。
-
[解決済み] app.all('*')とapp.use('/')の違いについて