Поскольку вы знаете общее количество элементов (сообщений в блоге), вы можете сделать несколько простых математических операций, чтобы узнать, какой будет последняя страница.
const lastPage = Math.ceil(totalItems / perPage);
Так же, как вы проходите posts
иtotalItems
, я бы тоже прошел currentPage
и lastPage
.По сути, мы могли бы выполнить приведенную выше математику в шаблоне, но зачем это делать?
res.render("home", {
posts,
currentPage,
totalItems,
lastPage
});
// The above notation is shorthand for prop: value
Теперь в шаблоне мы можем решить, показывать ли кнопку предыдущей и следующей страницы на основе переданных нами переменных.
Если currentPage
больше 1, мы должны быть на второй странице или за ее пределами, поэтому покажите ссылку на текущую страницу ?page=<%= currentPage - 1 %>
.
Если currentPage
нижеlastPage
, мы еще не достигли конца, поэтому мы показываем ссылку на следующую страницу.Это будет ?page=<%= currentPage + 1 %>
Нет необходимости использовать форму здесь.Достаточно простых тегов <a>
.