0
如何在Mongoose路徑上執行validate
,但返回更詳細的錯誤消息?在下面的例子中,我想返回四個可能的錯誤。雖然我他們登錄到控制檯,我寧願把他們送回作爲一個錯誤,而不是簡單的「無效的文件大小」:詳細Mongoose驗證錯誤?
schema.path('size').validate(function (size) {
if (typeof size == 'undefined' || size == null) { console.log('no size supplied'); return false; }
if (typeof size != 'number') { console.log('size not a number'); return false; }
if (size < 0) { console.log('size is negative'); return false; }
if (Math.floor(size) != Number(size)) { console.log('size is decimal'); return false; }
return true;
}, 'Invalid file size');
很酷!但是,隨後的評估應該在「true」還是「false」上失敗?例如,當'typeof size =='number''時,你會返回錯誤「size not a number」。 –
驗證失敗由返回false的函數指示。我顛倒了你的每個布爾檢查來做這個例子。所以如果'typeof size =='number''返回'false',那麼'size'不是一個數字,你會得到「大小不是數字」驗證失敗。 – JohnnyHK
啊,你說得對。對於第一個項目的雙重否定向我扔了一個循環。愛鏈接。 :) –