express-validator:如何检查电子邮件 ID 数组?
express-validator : How to check for an Array of Email IDs?
假设我有一个 post 请求正文:
{
"from":"mr.x@example.com",
"recipient":[
"john.doe@email.com",
"ramesh.suresh@example.com",
"jane.doe"
]
}
这是我的请求处理程序:
const { validationResult, body } = require("express-validator");
router.post(
"/api/request",
body("from").notEmpty().isEmail(),
body("recipient").isArray({ min: 1 }),
(req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
res.sendStatus(200)
}
);
如何使用快速验证器验证“收件人”是否为电子邮件 ID 数组?现在我知道 isEmail()
检查电子邮件,isArray()
检查数组。我如何结合这两个来检查它是否是“电子邮件 ID 数组”?
您可以按以下方式组合这两个检查,使用 wildcards:
const { validationResult, body } = require("express-validator");
router.post(
"/api/request",
body("from").notEmpty().isEmail(),
body("recipient").isArray({ min: 1 }),
body("recipient.*").not().isArray().isEmail(), // Here lies the "magic" :)
(req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
res.sendStatus(200)
}
);
注意:您需要“.not().isArray()”,因为嵌套的电子邮件数组会通过检查
假设我有一个 post 请求正文:
{
"from":"mr.x@example.com",
"recipient":[
"john.doe@email.com",
"ramesh.suresh@example.com",
"jane.doe"
]
}
这是我的请求处理程序:
const { validationResult, body } = require("express-validator");
router.post(
"/api/request",
body("from").notEmpty().isEmail(),
body("recipient").isArray({ min: 1 }),
(req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
res.sendStatus(200)
}
);
如何使用快速验证器验证“收件人”是否为电子邮件 ID 数组?现在我知道 isEmail()
检查电子邮件,isArray()
检查数组。我如何结合这两个来检查它是否是“电子邮件 ID 数组”?
您可以按以下方式组合这两个检查,使用 wildcards:
const { validationResult, body } = require("express-validator");
router.post(
"/api/request",
body("from").notEmpty().isEmail(),
body("recipient").isArray({ min: 1 }),
body("recipient.*").not().isArray().isEmail(), // Here lies the "magic" :)
(req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
res.sendStatus(200)
}
);
注意:您需要“.not().isArray()”,因为嵌套的电子邮件数组会通过检查