2
私はkoajsを使って模擬サーバを開発しています。開発したAPIをリストしたサービスを公開したいと思います。KoaサーバのURLルートのリストを取得するにはどうすればいいですか
私は、moutingサービスのためにkoa-routerを使用します。
と私は同じようsomethinkをしたいと思います:business_router
を想定し、
var app = require('koa')();
var router = require('koa-router')();
router.get('/bar', function*() { this.body = 'Hi'; }});
router.get('/bar/foo', function*() { this.body = 'Hi'; }});
router.get('/foo', function*() { this.body = 'Hi'; }});
router.get('/bar/baz', function*() { this.body = 'Hi'; }});
app
.use(router.routes())
.use(router.allowedMethods());
console.log(router.stack.map(i => i.path));
// ['/bar', '/bar/foo', '/foo', '/bar/baz']
をお使いの場合:私はそれが公式のkoa-router
APIの一部ではないと思いますが、あなたは以下のように行うことができます
var business_router = require('./controllers/router');
app.use(business_router.routes());
app.use(business_router.allowedMethods());
console.log(app.listRoutes());
これはあまり明確ではありませんあなたの質問はです。 –
'app'には、ルータミドルウェア(koa-routerを使用しているかどうか)やその他のミドルウェア(エラーハンドラ)のいずれかが、あなただけが知っているミドルウェア機能です。それでも、すべてのミドルウェアをリストアップしている 'app'はおそらく文書化されていません。明示的にそれは[このような](http://stackoverflow.com/questions/14934452/how-to-get-all-registered-routes-in-express)でも行えますが、expressには独自のルータがあります。ですから、これは答えではありませんが、何らかの形で役立つことを願っています。私はすべてのミドルウェアを取得し、何かがコーアルータ経由で生成されたものの一つであることに特徴があるかどうかを確認するために 'app'を調べるだろう – laggingreflex