2016-10-26 4 views
2

Если бы я это сделать:Могу ли я переопределить маршрут в Express?

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

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

Первый звонок, что работает, то второй get вызов не переопределяет первый. Есть ли хороший способ изменить это?

В основном я работаю над приложением Swagger, где он может поражать несколько API. Я разветвлялся от https://github.com/thanhson1085/swagger-combined. Приложение знает, будет ли API A /user проксировать любые вызовы от /user до нужного места. В настоящее время приложение отображает все вызовы API из числа API-интерфейсов, которые вы загружаете. Это означает, что если API A & API B имеет одинаковую конечную точку /user, я буду только прокси-сервером первого API, который зарегистрировал конечную точку в моем приложении.

+1

Хотелось бы оставить комментарий, почему вы отказали мне, анонимный downvoter –

ответ

4

Экспресс не разрешает отменять маршруты. Но вы должны иметь возможность использовать его и решать, где проксировать эти вызовы.

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

Было бы, вероятно, лучше, чтобы эти APIs в отдельных конечных точек, таких как /api1/user/ и api2/user/.

В основном вы можете использовать Express Router в другой экспресс-маршрутизатор.

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

Надеюсь, что это поможет.

+0

Я не контролирую конечные точки здесь. Я просто агрегирую API других людей. –

+0

Есть ли у вас эти API-интерфейсы, доступные отдельно? или вы будете использовать прокси, чтобы передать запросы дальше? –

+0

Я использую прокси-сервер, так что если api endpoint является '/ user', я нажимаю'/user' на моем сервере, используя это репозиторий с открытым исходным кодом. Однако я хочу настроить его так, чтобы маршрут '/ user' мог перейти в один домен или другой. Если я не могу перезаписать, что, кажется, так, я должен будет зарегистрировать больше информации и сделать прокси умнее. Я могу закончить это (более сложная версия первого и второго в вашем ответе) –

Смежные вопросы