[英]Checking for object and property existance
我定期使用mongodb,在從查詢結果訪問特定屬性之前,我編寫了一個存在檢查,該檢查通常如下所示:
if(result && result.subObject1 && result.subObject1.property) { ... }
這是檢查結果流或我所知道的任何其他對象的最安全的方法。
這很好,只是我大部分時間對自己想:“可能有更好的方法可以做到這一點”。
我看了幾篇相關的文章,但都沒有真正解決這個問題,特別是在處理(可能是)深層嵌套的對象時。
避免對數據值本身進行真/假檢查。
例如
請求正文: data : { temperature : -128, level : 42 }
等。
服務器驗證: data must be sent and have temperature value set
驗證碼: if(data && data.temperature){//ok}else{//invalid input}
上面的驗證代碼還將拒絕0和負溫度值,而服務器的實際驗證動機是確保始終設置溫度值。
因此,檢查應明確並分開定義:
function exists(val){ return val !== undefined && val !== null; }
function isNumber(val){ return !isNan(val); }
並應結合使用這些檢查。
要進行更強大的檢查,請使用諸如validator之類的模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.