我正在嘗試為快速 API 撰寫自定義驗證器。我不知道如何拒絕來自自定義驗證器的錯誤值。這是我所擁有的:
function validateInput(value) {
if (!(
(check(value).isIn(utils.getNames()) ||
check(value).isIn(utils.getIds()) ||
check(value).isIn(utils.getHexIds()))
)) {
return Promise.reject("Invalid input");
}
}
router.get('/endpoint',
query("input").custom(async (value) => {
await validateInput(value).catch()
}),
async (req, res) => {
try {
validationResult(req).throw();
} catch (err) {
res.status(400).json({"error": "A valid value for input must be passed"});
return;
}
}
我有一種感覺,我沒有正確處理承諾,但我也無法找出正確的解決方案。以下是自定義驗證器的檔案:https ://express-validator.github.io/docs/custom -validators-sanitizers.html
uj5u.com熱心網友回復:
看起來您使驗證器過于復雜。
第一,.catch()應以論據為通則。
在這里,您確實希望承諾在無效的情況下被拒絕,因此您不需要捕獲。
怎么樣:
query("input").custom(validateInput)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/455405.html
標籤:javascript 表示 快速验证器
