[英]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.