express-validator

express-validator は、バリデーターおよびサニタイザー関数をラップする
Express ミドルウェアである。

Custom validator

express-validator は依存関係である validator.js1 を通じて文字列のバリデーションを実現しているが、
より高度なものを実現するには custom validator external_link を使用する必要がある。

GROWIでの使用例

src/server/routes/apiv3/notification-setting.js
globalNotification: [ body('triggerPath').isString().trim().not().isEmpty(), body('notifyToType').isString().trim().isIn(['mail', 'slack']), body('toEmail').trim().custom((value, { req }) => { return (req.body.notifyToType === 'mail') ? (!!value && value.match(/.+@.+\..+/)) : true; }), body('slackChannels').trim().custom((value, { req }) => { return (req.body.notifyToType === 'slack') ? !!value : true; }), ],

toEmail のバリデーションは常に実行する訳ではなく、 notifyToType が email の場合のみに実行する。


関連ページ

Footnotes

  1. 文字列のみを検証およびサニタイズするライブラリ external_link