1. ホーム
  2. node.js

[解決済み】Expressに登録されている全ルートを取得する方法は?

2022-04-18 19:56:02

質問

Node.jsとExpressを使用して構築したWebアプリケーションを持っています。登録されたすべてのルートとそのメソッドを一覧表示したい。

例えば

app.get('/', function (...) { ... });
app.get('/foo/:id', function (...) { ... });
app.post('/foo/:id', function (...) { ... });

などのオブジェクト(またはそれに相当するもの)を取得したい。

{
  get: [ '/', '/foo/:id' ],
  post: [ '/foo/:id' ]
}

可能ですか?可能だとしたら、どのように?

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

エクスプレス3.x

よし、自分で見つけたぞ. app.routes :-)

エクスプレス4.x

アプリケーション - で構築された express()

app._router.stack

ルーター - で構築されています。 express.Router()

router.stack

備考 : スタックにはミドルウェアの関数も含まれるため、フィルタリングして ルート" のみです。