Экспресс проверяет маршруты в порядке, в котором они определены, и использует первый обработчик, маршрут которого совпадает с путем входящего запроса.Поскольку вы помещаете свой корневой маршрут ("/"
) сверху, и все маршруты соответствуют корневому маршруту (как минимум), он будет соответствовать и обрабатывать любой входящий запрос.
Чтобы это исправить, вы можете переместитьопределение вашего корневого маршрута до конца app.js.Например:
const post = require("./routes/post");
app.use("/posts", post);
app.use("/", (req, res) => {
res.render("index");
});
Как правило, вы должны определять под-маршруты перед их родителями и определять маршруты со статическими значениями перед теми, у которых переменные находятся в тех же позициях.Таким образом, хороший пример заказа будет:
app.use("/posts/new", ...);
app.use("/posts/:id", ...);
app.use("/posts", ...);
app.use("/", ...);