Мне удалось продемонстрировать оба ваших результата из ответа, который вы опубликовали.
Проблема в том, что вы используете .use()
вместо .get()
в своем определении маршрута:
app.use("/", function getAllPosts(req, res, next) {...}
Когда вы используете app.use("/", ...)
, это будет соответствовать ВСЕМ возможным маршрутам. Итак, когда вы впервые делаете версию www
, вы получите два запроса от браузера:
/
/favicon.ico
Оба из них будут соответствовать app.use("/", ...)
. .use()
соответствует любому маршруту, который начинается с того, что вы укажете.
Затем, когда вы удаляете www file из уравнения, вы все равно выполняете тот же код, КРОМЕ которого кэшируется браузером тот факт, что нет favicon.ico, поэтому он не запрашивает его. Если вы выполняете сменную перезагрузку для одной версии файла, это показывает ту же проблему, потому что браузер снова запрашивает favicon.ico, и вы получаете два запроса.
Измените это:
app.use("/", function getAllPosts(req, res, next) {...}
to:
app.get("/", function getAllPosts(req, res, next) {...}
и эта конкретная проблема исчезает в коде, который вы показываете во втором ответе. Я не знаю, почему вы изменили этот маршрут на app.use()
, потому что раньше он был app.get()
. Это было ясно для меня, когда я добавил это:
console.log("in route", req.url);
в начало обработчика маршрута. Вот где я ясно увидел запрос /favicon.ico
, вызывающий дополнительный вывод.