2016-03-17 71 views
0

我正在寫一個Node.js組件,因爲有一個API將從請求中獲取查詢值。有時該查詢值將爲空,如"",所以我需要爲此寫入一個條件。如何檢查請求查詢值是否爲空,如「」?

例如,

查詢將包含類似這樣

{ 
    name:"", 
    start:"yyyy" 
} 

的值,所以我需要寫一個條件,以檢查名稱是否爲空。

我已經寫了一些東西像

if(name){}

if(name===""){}

,但它不工作,那麼我檢查了這是給2字符串的長度。

所以怎麼寫條件?

+0

你試過'如果(name ==「」){'? –

+1

是不是一個對象的名稱的一部分?你不需要像'object.name ==='''那樣的東西嗎? – Pete

+0

如果字符串長度爲2,那麼可能有空的空間,或者它可能是一個數組。你可以嘗試在控制檯或類似的東西上輸出名字的執行值(比如'console.log(「>」+ name +「<」)' –

回答

0

如果字符串長度是2,你說的。然後,我認爲以下可能的工作:

if(name===""""){} // <--this is just wrong. 

更新: 我想這個問題是該字符串由兩個空間。所以你可以嘗試:

if (name.replace(/\s/g, "").length > 0) { 
    // Your Code 
} 
+0

這似乎有點猜測 – Liam

+0

意外的字符串錯誤 – silvesterprabu

0

更新這個答案根據評論。 問題在於請求發送到服務器。需要注意的是,我們不需要爲空字符串添加雙引號。上述正在發生,因爲正在使用的查詢字符串的問題是

www.bla.com?name=""

這裏變量「name」被獲取兩個雙引號作爲它的值,它的意思是空的。因此,而不是上面的查詢字符串,請使用以下格式:

www.bla.com?name=

這裏的變量名稱正確獲取空字符串作爲它的值。

多個變量使用

www.bla.com?name=&age=22

+0

我已經嘗試過,但它沒有工作 – silvesterprabu

+0

請你提供一些更多的代碼。機器 –

+0

app.get('/ getVisitorInfo',function(req,res){ console.log(「> 「+ req.query.stadiumName +」<「); \t \t \t 如果\t(req.query.stadiumName === 「!」) \t \t { \t \t \t res.send( 「stadiumName」) \t \t} \t}); – silvesterprabu

0

確定它來自你的查詢localhost:3000/getVisitorInfo?stadiumName=''";,它包含兩個單引號後跟一個雙引號,這樣做,而不是執行以下操作:localhost:3000/getVisitorInfo?stadiumName=""