为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 express 中处理空路由参数

如何在 express 中处理空路由参数

函数式编程 2022-08-04 09:59:23
如果路径未指定,我正在尝试处理空路由参数,如果路由参数为空,我想返回新日期。到目前为止,服务器是这样响应的:无法获取 /api/时间戳/app.get("/api/timestamp/:date_string", function(req,res){let dateString=req.params.date_string if(!req.params.date_string){    dateString=new Date()    res.json({"unix": dateString.getTime(), "utc" : dateString.toUTCString()})  }  })目前,服务器没有像预期的那样使用json新日期进行响应,有人知道如何捕获空路由参数吗?
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

Express 使用正则表达式路径,因此您可以在此处查看该文档:https://www.npmjs.com/package/path-to-regexp#optional

您可以在参数的末尾放置问号,使其成为可选参数,例如.../timestamp/:d ate_string?


查看完整回答
反对 回复 2022-08-04
?
绝地无双

TA贡献1946条经验 获得超4个赞

您可以在检查参数是否存在方面做得很好。但是你只有在那个如果阻止的情况下才有你的回应。我将其移出 if 块,以便您始终发送响应。只有当不存在时才不。req.params.date_string


编辑:我进一步添加了问号,以表明您的URL参数是可选的,正如贾斯汀的答案中指出的那样。


app.get("/api/timestamp/:date_string?", function(req,res){

let dateString=req.params.date_string

 if(!req.params.date_string){

    dateString=new Date()

  }  

  res.json({"unix": dateString.getTime(), "utc" : dateString.toUTCString()})

})


查看完整回答
反对 回复 2022-08-04
?
喵喔喔

TA贡献1735条经验 获得超5个赞

在您的情况下,您只需使用:


app.get("/api/timestamp/:date_string?", function(req,res){


let dateString=req.params.date_string

 if(!req.params.date_string){

    dateString=new Date()

  }  

  res.json({"unix": dateString.getTime(), "utc" : dateString.toUTCString()})

})

您可以简单地检查任何变量或值是否存在,


if(variable){

   // this condition executed only when the variable has value.

}

if(变量) 在给出变量不是

  • 定义

它也有一些价值


查看完整回答
反对 回复 2022-08-04
  • 3 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信