У меня возникла странная проблема: если я пишу один маршрут, он перенаправляет на мою домашнюю страницу по причинам, не зависящим от меня. Но если я изменю хотя бы одну букву в маршруте, все будет работать идеально.
Кажется, если я пишу именно это, с «записями» в конце, при переходе по этой ссылке меня просто перенаправляют, независимо от содержимого маршрута. Следующее не работает (приводит к немедленному перенаправлению, по-видимому, вообще никогда не обращается к маршруту):
router.get('/:username/curatas/:curataId/entries', function(req, res) {
// some code that works.
})
Однако, когда я использую абсолютно любой другой выбор букв, это работает! Например, опускание «s» в «записях» или добавление «x» и т. д.
router.get('/:username/curatas/:curataId/entrie', function(req, res) {
// some code that works.
})
В чем может быть причина такого странного поведения? Я тоже не обнаружил никакой ошибки.
@Pointy, всякий раз, когда я пытаюсь получить к нему доступ, меня перенаправляют на домашнюю страницу. Нет ошибок. Я пытался настроить ошибки внутри маршрута, но, похоже, он даже не попадает внутрь маршрута. А в остальном приложение продолжает работать в обычном режиме.
Возможно ли, что этот шаблон пути сталкивается с каким-то другим путем в приложении?
Искал через приложение искал другие такие пути, не нашел. Действительно странно.
Кажется, как говорит @Pointy, этот путь был определен в другом месте и выполняет перенаправление. Вы абсолютно уверены, что он не дублируется, учитывая, что параметры с ':' могут быть совершенно разными (например, '/:whatever/curatas/:whatever/entries')?
Используете ли вы какое-либо промежуточное ПО, которое может перенаправлять, прежде чем перейти к определенному маршруту?
@VirgilioGM, проверил, такого случая тоже нет. И никакого промежуточного ПО.
Перенаправление должно быть где-то установлено, поэтому вам придется отлаживать код, пока вы не найдете где.
Ах! Оказалось, что это работает в Safari! Затем очистил весь кеш в Chrome, и теперь он работает и там. Таким образом, проблема была в кеше, хотя это и странно, так как ранее это не было проблемой ни для каких маршрутов.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проблема оказалась в кеше.
Я никогда раньше не сталкивался с этим ни с какими маршрутами и не ожидал проблем с кешем в бэкэнд-коде.
Так что для тех, кто сталкивается с похожей проблемой, когда текущий код, кажется, не имеет проблем, но вы столкнулись со странным, неожиданным поведением без ошибок...
Тогда ваша проблема может быть в кеше. Попробуйте в другом браузере или почистите кеш.
С помощью инструментов разработчика Chrome вы можете отключить кеширование на вкладке сети.
@slebetman, у вас есть идеи, почему в данном случае это превратилось в проблему с кешем, но обычно такого не возникает? Просто аномалия, или есть что-то особенное, на что нужно обратить внимание? Также спасибо за подсказку!
Он всегда был там, но вы просто никогда не замечали. Для неиндемпотентных конечных точек (таких как маршруты, генерирующие JSON, которые генерируют изменяющиеся во времени данные) я всегда устанавливаю заголовок Cache-Control для отключения кеша, но это снижает производительность, поэтому не делайте этого для всего.
Что именно означает «не работает»? Происходит ли что-нибудь? Вы получаете ошибки?