如果我这样做:
app.get('/test', (req, res) => {
res.send('First');
});
app.get('/test', (req, res) => {
res.send('Second');
});
第一个调用是有效的,第二个get
调用不会覆盖第一个调用。有没有好办法改变它?
基本上我正在开发一个可以访问多个API的Swagger应用程序。我从https://github.com/thanhson1085/swagger-combined分叉。该应用知道API A是否会点击/user
,它会将来自/user
的任何来电代理到相应的地方。现在,该应用程序会在您加载的API中列出所有API调用。这意味着如果API A& API B具有相同的/user
端点,我只会代理在我的应用中注册端点的第一个API。
答案 0 :(得分:4)
Express不允许覆盖路线。但是你应该能够使用一个并决定在哪里代理这些电话。
app.get('/test', (req, res) => {
if(req.isFirst()){
res.send('First');
}
if(req.isSecond()){
res.send('Second');
}
});
最好将这些api放在单独的端点中,例如/api1/user/
和api2/user/
。
您基本上可以将Express Router传递到另一台Express Router。
let api1Router = express.Router()
rootRouter.use('/api1', api1Router)
希望有所帮助。