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

如果路径未指定,我正在尝试处理空路由参数,如果路由参数为空,我想返回新日期。到目前为止,服务器是这样响应的:无法获取 /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新日期进行响应,有人知道如何捕获空路由参数吗?


函数式编程
浏览 99回答 3
3回答

青春有我

Express 使用正则表达式路径,因此您可以在此处查看该文档:https://www.npmjs.com/package/path-to-regexp#optional您可以在参数的末尾放置问号,使其成为可选参数,例如.../timestamp/:d ate_string?

绝地无双

您可以在检查参数是否存在方面做得很好。但是你只有在那个如果阻止的情况下才有你的回应。我将其移出 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(变量) 在给出变量不是定义零南和它也有一些价值
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript