簡體   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