Неоднозначная сигнатура метода в ExpressJS. Как это решить? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть две подписи URL-адреса

var userView = '/um/rest/queryview/:queryType/:queryRef'
var userDetail = '/um/rest/queryview/queryRef/:queryRef'

app.get(userView, function(req,res){console.log("userView")});
app.get(userDetail, function(req,res){console.log("user detail")});

Если я запускаю http://localhost:8080/um/rest/queryview/queryRef/BH3RHM..., то получается «пользовательский вид», а не «пользовательские данные».

Если язаблокируйте экспозицию userView /app.get(userView).../ тогда все будет работать нормально.

Каков наилучший способ определения URL-адресов и их методов?

1 Ответ

0 голосов
/ 13 ноября 2018

Вам просто нужно изменить порядок маршрутов.Вместо:

app.get(userView, function(req,res){console.log("userView")});
app.get(userDetail, function(req,res){console.log("user detail")});

Вы можете сделать это:

app.get(userDetail, function(req,res){console.log("user detail")});
app.get(userView, function(req,res){console.log("userView")});

Таким образом, экспресс сначала попытается найти URL-адрес userDetail, а затем попытаться найти URL-адрес userView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...