paginacija

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
paginacija [2024/06/08 08:19]
tro
paginacija [2024/06/08 08:21] (текущий)
tro
Строка 13: Строка 13:
  
 <code> <code>
 +// src/utils/parsePaginationParams.js
 +
 +const parseNumber = (number, defaultValue) => {
 +  const isString = typeof number === 'string';
 +  if (!isString) return defaultValue;
 +
 +  const parsedNumber = parseInt(number);
 +  if (Number.isNaN(parsedNumber)) {
 +    return defaultValue;
 +  }
 +
 +  return parsedNumber;
 +};
 +
 +</code>
 +
 +Приклад використання
 +<code>
 +// src/utils/parsePaginationParams.js
 +
 +/* Інший код файлу */
 +
 +export const parsePaginationParams = (query) => {
 +  const { page, perPage } = query;
 +
 +  const parsedPage = parseNumber(page, 1);
 +  const parsedPerPage = parseNumber(perPage, 10);
 +
 +  return {
 +    page: parsedPage,
 +    perPage: parsedPerPage,
 +  };
 +};
 +
 +</code>
 +<code>
 +// src/controllers/students.js
 +
 +import { parsePaginationParams } from '../utils/parsePaginationParams.js';
 +
 +/* Решта коду файла */
 +
 +export const getStudentsController = async (req, res) => {
 +  const { page, perPage } = parsePaginationParams(req.query);
 +  const students = await getAllStudents({
 +    page,
 +    perPage,
 +  });
 +
 +  res.json({
 +    status: 200,
 +    message: 'Successfully found students!',
 +    data: students,
 +  });
 +};
 +
 </code> </code>
  • /sites/data/attic/paginacija.1717834791.txt.gz
  • Последнее изменение: 2024/06/08 08:19
  • tro