Проверка параметра в Nuxt
Посредник решает, пускать ли переход
и куда редиректить. Отдельная задача -
проверить, подходит ли значение
параметра страницы по формату.
Для этого в definePageMeta
есть поле validate: функция
получает маршрут и возвращает
true или false.
Это не файл в app/middleware,
а правило прямо на странице с
квадратными скобками в имени файла.
Если validate вернёт false,
Nuxt не откроет страницу и покажет
стандартную страницу ошибки. Так
отсекают буквы в numeric id или
пустые сегменты до загрузки данных.
Адрес /posts/12 пройдёт проверку,
/posts/abc покажет ошибку Nuxt.
Разберём посты, где id должен
состоять только из цифр:
<script setup>
definePageMeta({
validate: (route) => {
return /^\d+$/.test(String(route.params.id));
},
});
const route = useRoute();
</script>
<template>
<h1>
Post {{ route.params.id }}
</h1>
</template>
Сделайте страницу продукта с динамическим id, которая принимает только числовой параметр.
Проверьте, что адрес с буквами в сегменте id показывает страницу ошибки, а с цифрами открывает экран продукта.