Celebrate - это пакет middleware для Express.js, который используется для валидации данных, входящих в запросы. Если вы хотите сделать валидацию ссылки с помощью Celebrate, вам необходимо использовать встроенные проверки Celebrate или создать собственные проверки.
Для начала вам нужно установить и настроить Celebrate в вашем проекте. Выполните следующую команду в командной строке, находясь в корневом каталоге вашего проекта:
npm install celebrate
После установки, вам понадобится подключить Celebrate в файле вашего приложения. Для этого выполните следующий код:
const { celebrate, Joi, errors } = require('celebrate'); const express = require('express'); const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.get('/api/link', celebrate({ query: { link: Joi.string().uri().required() } }), (req, res) => { // Ваш код обработки запроса }); app.use(errors()); app.listen(3000, () => { console.log('Сервер запущен на порту 3000'); });
Здесь мы создаем пример простого Express.js приложения, которое принимает GET запрос на /api/link
. Celebrate валидирует query параметры запроса. Joi.string().uri().required()
- это пример встроенной проверки Celebrate, которая проверяет что значение параметра link
является корректной ссылкой.
Вы можете использовать другие методы и проверки, предоставляемые Joi (npm пакет, на котором Celebrate основан), чтобы создавать более сложные правила валидации для ссылок. Например, вы можете добавить проверку на протокол ссылки (http
, https
), добавить опциональные параметры или ограничить длину ссылки.
app.get('/api/link', celebrate({ query: { link: Joi.string().uri({ scheme: ['http', 'https'] }).required() } }), (req, res) => { // Ваш код обработки запроса });
Теперь при обращении к /api/link?link=https://example.com
ваш сервер будет возвращать данные только в случае, если значение link
будет корректной ссылкой с протоколами http
или https
.
Вы также можете создавать собственные функции валидации, описывая их внутри celebrate
. Собственные функции валидации могут быть полезными, если у вас есть специфичные правила проверки ссылки, которые не предоставляются встроенными правилами Joi. Например:
const isUniqueLink = (value, helpers) => { // Проверка уникальности ссылки в базе данных или другим способом }; app.get('/api/link', celebrate({ query: { link: Joi.string().custom(isUniqueLink).required() } }), (req, res) => { // Ваш код обработки запроса });
Здесь isUniqueLink
- это собственная функция валидации, которая проверяет, что значение link
уникально. Вы можете заменить эту функцию на вашу собственную логику проверки.
Наконец, вы можете обрабатывать ошибки валидации Celebrate, используя middleware errors()
. Это middleware сгенерирует и вернет ответ с соответствующей ошибкой в случае, если валидация не прошла:
app.use(errors());
Убедитесь, что этот middleware подключен после всех маршрутов, где используется Celebrate.
Вот и все! Теперь вы знаете, как делать валидацию ссылки с использованием Celebrate в Express.js. С помощью этого пакета вы можете создавать более сложные правила валидации для различных типов данных в вашем приложении.