繁体   English   中英

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

[英]How to handle empty route parameters in express

如果未指定路径,我试图处理空路由参数,如果路由参数为空,我想返回一个新日期。 到目前为止,服务器的响应如下:Cannot GET /api/timestamp/

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 新日期,有人知道如何捕获空路由参数吗?

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

您可以在参数末尾加上问号,使它们成为可选参数,例如.../timestamp/:date_string?

您在检查参数是否存在方面做得很好。 但是你只有在那个 if 块中有你的回应。 我将它移出 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()})
})

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

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(variable) 当给定变量不是时返回 true

  • 不明确的
  • null

它也有一些价值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM