Я пытаюсь создать механизм проверки подлинности для своего приложения, проверив файлы cookie. Поэтому я добавил router.all('*')
, чтобы соответствовать каждому запросу, проверить файл cookie и перейти к фактическому обработчику. Но мне нужно, чтобы он соответствовал запросам, у которых один или несколько символов после '/'. (Я хочу соответствовать /manage
, /m
или /about
, но не /
).Сопоставьте все маршруты, но '/' в Express
//Assuming a request for '/', this gets called first
router.all('*', function (request, response, next) {
//Stuff happening
next();
});
//This gets called on next(), which I do not want
router.get('/', function (request, response) {
//Stuff happening
});
//However this I do want to be matched when requested and therefore called after router.all()
router.post('/about', function (request, response) {
//Stuff happening
});
Согласно ответам here вы можете использовать регулярные выражения для сопоставления пути, но тогда я не понимаю, что '*'
есть. Он может соответствовать всем, но для меня это не похоже на регулярное выражение.
- Почему
'*'
соответствует/
? - Какой аргумент мне нужно для suplly до
all()
в соответствии с/about
, но не/
?
Иногда решение вашей проблемы не является ответом на ваш вопрос, а является решением проблемы. –