Маршруты с параметрами вызывается дважды? - PullRequest
9 голосов
/ 20 сентября 2011

Я создаю веб-приложение NodeJS через ExpressJS. У меня есть следующие два маршрута (среди прочих):

app.get('/user/reset/verify', function(req, res) {
    console.log("Executing verification index.");
    res.render("verify/index");
});

app.get('/user/reset/verify/:email/:token', function(req, res) {
    console.log("Executing verification change.");
    res.render("verify/change");
});

Когда я перехожу на страницу индекса проверки, я вижу «Выполнение индекса проверки». напечатан один раз на консоли. Однако, когда я перехожу на страницу изменения подтверждения, я вижу «Выполнение изменения проверки». напечатано дважды на консоли.

Я заметил, что это тенденция с маршрутами в моем приложении. Маршруты, содержащие параметры, всегда выполняются дважды, тогда как маршруты без параметров выполняются только (правильно) один раз.

Почему маршруты с параметрами выполняются дважды?

Представления, которые отображаются, содержат только простой HTML - ничего, что могло бы вызвать новый запрос к странице. Кроме того, я отправляю эти запросы из браузера Chrome.

Платформа / Версия:

  • NodeJS: сборка окон 0.5.5 (работает на Win 7)
  • Экспресс: 2,4,6
  • Подключение: 1.7.1

Ответы [ 2 ]

17 голосов
/ 15 октября 2011

Второй запрос - /favicon.ico Попробуйте в консоли зарегистрировать ваш request.url в вашем обработчике запросов http_server, вы увидите сначала URL-адрес браузера, а следующий - значок.

0 голосов
/ 13 апреля 2017

Если вы используете Chrome: при написании URL-адреса Chrome отправьте запрос на получение, чтобы проверить URL-адрес, прежде чем нажать Enter.

Попробуйте войти в промежуточный URL-адрес console.log (req.url) расположитеконсоль в сторону вашего broswer, затем начните писать URL-адрес, вы увидите, как консоль регистрирует получение доступа.

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