【问题标题】:how to make req.query only accepts date format like yyyy-mm-dd如何使 req.query 只接受像 yyyy-mm-dd 这样的日期格式
【发布时间】:2021-01-20 03:56:09
【问题描述】:

我想问一下如何使我的 req.query 只接受像这样的日期格式 YYYY-MM-DD 而不仅仅是随机数,因为我的代码在查询中仍然接受像“123456”这样的数字。

【问题讨论】:

  • 做一些验证使用库,例如​​joi
  • 还有其他方法吗?我不想使用图书馆
  • 您能提供一个示例路线吗?例如:myawesomehost:3000/api/v1/users?year=2021&month=1&date=21
  • 我的路线是这样的 /api/v1/days/?day=2021/01/20
  • 如果它无效,你期望什么? NotFound 响应或 BadRequest 响应?

标签: node.js mongodb express


【解决方案1】:

你可以试试下面的代码:

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

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

【讨论】:

  • 当我输入 2021/01/20 时它为假。应该是真的吧?
  • 代码按预期工作,但是当我将它用于我的代码库时,它没有提供正确的信息。这是我的代码。常量 { 天 } = req.query; const isValidDate = !(new Date(day).toString().toLowerCase().includes('invalid')); if (!isValidDate) { return res.status(500).json({ message: '请以这种格式输入日期 yyyy-mm-dd' })
  • 你能给我解释一下吗?请不要再问了:D
  • 您编写的代码(如果您觉得可以的话)。对不起,我对后端很陌生。
  • 我认为你可以控制台 req.params.day 并查看结果。确保它与您的预期相同。
猜你喜欢
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
相关资源
最近更新 更多