Advertisement
andreymal

basic javascript pagination

Feb 16th, 2022
1,076
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import express from 'express';
  2.  
  3. const app = express();
  4.  
  5. app.get('/', (req, res) => {
  6.   // Получаем номер страницы из параметра в ссылке
  7.   let pageNumber = parseInt(req.query.page || 1, 10);
  8.   if (Number.isNaN(pageNumber) || pageNumber < 1) {
  9.     pageNumber = 1;
  10.   }
  11.  
  12.   // Генерируем html-код шапки
  13.   let html = '<html><body>'
  14.   html += `<h1>Страница ${pageNumber}</h1>`;
  15.  
  16.   // Генерируем десять ссылок на странице
  17.   html += '<ul>';
  18.   for (let i = pageNumber * 10 + 1; i < pageNumber * 10 + 10; i++) {
  19.     html += `<li><a href="#" onclick="alert('Вы кликнули на строку ${i}');">Строка ${i}</a></li>`;
  20.   }
  21.   html += '</ul>';
  22.  
  23.   // Генерируем блок со ссылками на другие страницы
  24.   // Переменная pagesFrom хранит номер, с какой страницы начинать генерировать ссылки
  25.   let pagesFrom = pageNumber - 7;
  26.   if (pagesFrom < 1) {
  27.     pagesFrom = 1;
  28.   }
  29.  
  30.   html += '<p>Перейти на страницу:';
  31.   for (let i = pagesFrom; i < pagesFrom + 15; i++) {
  32.     if (i == pageNumber) {
  33.       html += ` <b>${i}</b>`;
  34.     } else {
  35.       html += ` <a href="/?page=${i}">${i}</a>`;
  36.     }
  37.   }
  38.   html += '</p>';
  39.  
  40.   // Закрываем оставшиеся html-теги
  41.   html += '</body><html>'
  42.  
  43.   // И отпавляем ответ
  44.   res.send(html);
  45. })
  46.  
  47. // express принимает HTTP-запросы на порту 3000
  48. app.listen(3000);
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement