express.js 相關的套件之一,Express Validator,可以幫助設計者節省在表單驗證下的難處。
下載與官方文件
Github:https://github.com/express-validator/express-validator
NPM:https://www.npmjs.com/package/express-validator
官方文件:https://express-validator.github.io/docs/
操作說明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
// validator 放在 router 路徑以及 request, response 中間。 // conditions 是用 array 包含一個類似物件的方式來存取 // value 是前端使用者的 input 輸入的值 // .custom 為自訂的驗證函式 conditions = [ check('inputPhone') .exists() .isLength({ min: 10 }) .custom((value) => { return phonePattern.test(value) }) .withMessage("電話格式要為區碼-號碼,如:02-23939889"), check('inputRating') .exists() .isNumeric() .custom((value) => { return ((value >= 0) && (value <= 5)) }) .withMessage('請檢查數字範圍') ] router.post('/', conditions, (req, res) => { const errors = validationResult(req) if (!errors.isEmpty()) { res.render('new', { css: ['edit.css'] }) } else { restaurant.save(err => { if (err) return console.error(err) return res.redirect('/') }) } }) |
參考資料
边写边学系列(二) —— 使用express-validator进行后端校验
按讚加入粉絲團