Дата отправки в объекте JSON из пользовательского ввода - PullRequest
0 голосов
/ 04 октября 2018

У меня есть API с Nodejs / Express, который получает данные из формы с опцией даты в качестве тела запроса.

В настоящее время я отправляю этот формат даты YYYY-mm-dd, и я тоже пробовал этотdd/mm/YYYY, но сервер падает, когда я тестирую в Postman с этой ошибкой:

UnhandledPromiseRejectionWarning: ValidationError: profile validation failed: experience.0.from: Cast to Date failed for value "2017-14-09" at path
"from"
at new ValidationError (D:\ReactDev\MERN Dev\DevConnect\dev-connect\node_modules\mongoose\lib\error\validation.js:30:11)
at model.Document.invalidate (D:\ReactDev\MERN Dev\DevConnect\dev-connect\node_modules\mongoose\lib\document.js:1957:32)
at EmbeddedDocument.invalidate (D:\ReactDev\MERN Dev\DevConnect\dev-connect\node_modules\mongoose\lib\types\embedded.js:287:19)

В идеале пользователь может ввести любой формат даты, который он пожелает, но как мне получить ввод без ошибок.Есть ли правильный способ сделать это?Спасибо.

1 Ответ

0 голосов
/ 04 октября 2018

хорошо, не знаю, какой у вас внутренний код NodeJS / Express, но, скажем, у вас есть такой POST-маршрут, который получает дату:

app.post('/', function (req, res) {

  //extract the user submitted date from the request body
  var rawdate = req.body.date

  //create a new Date object
  var date = new Date(rawdate)

  //check that the date object is valid (here a helpful link: /1313906/obnaruzhenie-nedopustimoi-daty-ekzemplyara-date-v-javascript)
  //if the date is valid, do your processing then send a response
  //if the date is not valid, send an error http response back to the user

  ...

})

, поэтому, в основном, передавая ее Date(), вы поворачиваетелюбая строка даты в объект Date, которой вы можете манипулировать так, как хотите.Вот ссылка на документацию: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

Я попытался использовать оба ваших формата, чтобы показать вам пример: снимок экрана терминала

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...