使用 JOI 模块创建数据验证
create a data validation using JOI module
我是 Joi 的新手。我尝试对注册用户制定一些规则。但是每个新用户都可以注册并且总是执行“if”命令。
const Joi = require ('joi')
const authSchema = Joi.object().keys({
email:Joi.string().email().required(),
password:Joi.string().min(10).max(24).required()
})
exports.email = (req,res,next) => {
if(authSchema.validate(req.body)){
console.log("je suis dans le middleware joi")
console.log("-------> req.body")
console.log(req.body)
// authSchema.validate({email: req.body.email, password: req.body.password})
// authSchema.validate(req.body)
next()
} else{
res.status(400).json({ error: "erreur de data validataion" });
console.log("erreur ne convient pas a joi")
}
}
嘿,这就是我做 main 的方式
validateInput(rowData) {
const schema = Joi.object().keys({
email: Joi.string().email().required(),
firstName: Joi.string().required(),
lastName: Joi.string().required(),
contact: Joi.string().required(),
roleId: Joi.number().allow("", null),
});
return schema.validate(rowData);
},
然后这样称呼它
const { error } = await validateInput(user); // request body user.
if (error) {
return res.status(400).send({ message: error.details[0].message });
// it will return for you the message.
}
这里 link 介绍了如何将 Joi 用作中间件。
https://dev.to/tayfunakgc/middleware-based-joi-validation-in-expressjs-2po5
我是 Joi 的新手。我尝试对注册用户制定一些规则。但是每个新用户都可以注册并且总是执行“if”命令。
const Joi = require ('joi')
const authSchema = Joi.object().keys({
email:Joi.string().email().required(),
password:Joi.string().min(10).max(24).required()
})
exports.email = (req,res,next) => {
if(authSchema.validate(req.body)){
console.log("je suis dans le middleware joi")
console.log("-------> req.body")
console.log(req.body)
// authSchema.validate({email: req.body.email, password: req.body.password})
// authSchema.validate(req.body)
next()
} else{
res.status(400).json({ error: "erreur de data validataion" });
console.log("erreur ne convient pas a joi")
}
}
嘿,这就是我做 main 的方式
validateInput(rowData) {
const schema = Joi.object().keys({
email: Joi.string().email().required(),
firstName: Joi.string().required(),
lastName: Joi.string().required(),
contact: Joi.string().required(),
roleId: Joi.number().allow("", null),
});
return schema.validate(rowData);
},
然后这样称呼它
const { error } = await validateInput(user); // request body user.
if (error) {
return res.status(400).send({ message: error.details[0].message });
// it will return for you the message.
}
这里 link 介绍了如何将 Joi 用作中间件。 https://dev.to/tayfunakgc/middleware-based-joi-validation-in-expressjs-2po5