[英]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
和
它也有一些价值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.