2016-10-26 7 views
2

私はこれを行う場合は、次のExpressで経路を無効にすることはできますか?

app.get('/test', (req, res) => { 
res.send('First'); 
}); 

app.get('/test', (req, res) => { 
res.send('Second'); 
}); 

最初の呼び出しは、どのような作品、第二getコールが最初に上書きされることはありませんです。それを変える良い方法はありますか?

基本的に私はそれが複数のAPIを打つことができる闊歩アプリに取り組んでいます。私はhttps://github.com/thanhson1085/swagger-combinedから分けました。 API Aは、適切な場所へ/userから/userそれは代理する任意のコールを打つ場合はアプリが知っています。今、あなたが読み込んだAPIの数だけ、すべてのAPI呼び出しを一覧表示します。それはAPI & API Bは/userの同じエンドポイントを持っている場合、私は私のアプリでエンドポイントを登録して最初のAPIにしかプロキシを意味します。

+1

私がここでのエンドポイントの制御ではないんだけど、あなたは私をdownvoted理由としてコメントを残すために、匿名downvoter –

答えて

4

Expressは、ルートを上書きすることはできません。しかし、あなたは1つを使用して、それらの呼び出しをどこにプロキシするかを決めることができます。

app.get('/test', (req, res) => { 
    if(req.isFirst()){ 
    res.send('First'); 
    } 
    if(req.isSecond()){ 
    res.send('Second'); 
    } 
}); 

それはおそらくより良い/api1/user/api2/user/のような別のエンドポイントにこれらのAPIを持っているでしょう。

あなたは基本的に別のエクスプレスのルータにExpressのルータを渡すことができます。

let api1Router = express.Router() 
rootRouter.use('/api1', api1Router) 

希望します。

+0

良いでしょう。私は他の人々のAPIを集めています。 –

+0

これらのAPIは別途入手できますか?または、プロキシを使用してリクエストをさらに送信しますか? –

+0

私はapiエンドポイントが '/ user'であれば私のサーバー上で'/user'をヒットするようにプロキシを使用しています。しかし、私はそれを調整したいので、 '/ user'ルートはあるドメインまたは別のドメインに行くかもしれません。上書きすることができない場合は、私はより多くの情報を登録し、プロキシをよりスマートにする必要があります。私はそれをやってしまうかもしれません(あなたの答えでは最初のものと2番目のもののより複雑なバージョンです) –

関連する問題