РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnuPmFmFC 79 of 84 menu
◀ ▶

Проверка полей в Nuxt

Клиент может пропустить пустое поле, но полагаться только на браузер нельзя: запрос можно отправить и в обход формы. Проверку обязательных значений делают в обработчике API до любой записи в базу или файлы.

Если заголовок заметки пустой, обработчик не возвращает успех. Вместо этого выставляют HTTP-статус 400 через setResponseStatus и отдают JSON с пояснением. Так клиент понимает, что запрос отклонён из-за данных, а не из-за сбоя сервера.

Давайте разберём проверку в notes.post.js:

export default defineEventHandler(async (event) => { const body = await readBody(event); const title = body.title?.trim(); if (!title) { setResponseStatus(event, 400); return { message: 'Title is required' }; } return { title }; });

Если пользователь отправит форму с пустым заголовком, ответ получит статус 400 и поле message с текстом на английском. Страницу для показа этой ошибки мы оформим отдельно; здесь важна логика на сервере.

Страница с заполненным полем по-прежнему успешно вызывает API. Пример с непустым title:

<script setup> const title = ref(''); async function submitForm() { await $fetch('/api/notes', { method: 'POST', body: { title: title.value }, }); } </script> <template> <form @submit.prevent="submitForm"> <input v-model="title" type="text"> <button type="submit"> Save </button> </form> </template>

Добавьте в обработчик сотрудников проверку: пустое имя должно приводить к ответу со статусом 400.

Верните из обработчика сообщение на английском, если имя не заполнено.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить