簡體   English   中英

檢查對象和屬性是否存在

[英]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之類的模塊。

就深度檢查而言,您將需要先定義完整且正確的JSON模式 ,然后在其上運行模式驗證器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM