как сделать запрос.запрос принимает только формат даты, такой как гггг-мм-дд

#node.js #mongodb #express

#node.js #mongodb #экспресс

Вопрос:

Я хочу спросить, как я могу сделать свой запрос.запрос принимает только формат даты, подобный этому ГГГГ-ММ-ДД, а не просто случайное число, потому что мой код все еще принимает числа, такие как «123456» в запросе.

Комментарии:

1. Используют ли некоторые проверки библиотеку, такую как joi

2. есть ли другой способ? я не хочу использовать библиотеку

3. Можете ли вы предоставить пример маршрута, который у вас есть? для примера: myawesomehost:3000/api/v1/users?year=2021amp;month=1amp;date=21

4. мой маршрут выглядит так /api/v1/days/?day=2021/01/20

5. Если это неверно, чего вы ожидали? Не найден ответ или ответ на неверный запрос?

Ответ №1:

Вы можете попробовать этот код ниже:

 const isValidDate = !(new Date('2021/01/20').toString().toLowerCase().includes('invalid'));

if (isValidDate) {
  console.log('Valid Date');
} else {
  console.log('InValid Date');
} 

Комментарии:

1. его значение false при вводе 2021/01/20. Это должно быть верно, верно?

2. Код работает по назначению, однако, когда я использовал его в своей базе кода, он не дает правильной информации. Вот мой код. const { day } = запрос. запрос; const isValidDate = ! (новая дата (день). toString().toLowerCase().includes(‘недопустимый’)); if (!isValidDate) { возвращает res.status(500).json({ сообщение: ‘Пожалуйста, введите дату в этом формате гггг-мм-дд’ })

3. можете ли вы мне это объяснить? пожалуйста, чтобы я не спрашивал снова: D

4. код, который вы сделали, если он вас устраивает. я довольно новичок в серверной части, извините.

5. Я думаю, вы можете утешить req.params.day и посмотреть результат. Убедитесь, что это то же самое, что и вы ожидали.