hapi-joi验证错误值必须为字符串(已解决)

时间:2019-06-09 15:06:24

标签: joi

我一直在使用Joi进行验证,它很棒。我不知道这个req主体或主要的nodejs代码有什么问题.Joi模式可以与其他api正常工作。我有这个模式文件-:

JS

这是我的请求对象

const schema = Joi.object().keys({
    userId : Joi.string(),
    email : Joi.string().email(),
    name: Joi.string().min(3).max(100),
    profilePic: Joi.string(),
    address: Joi.string().min(3).max(255),
    gender : Joi.string().min(4).max(7),
    phoneNumber: Joi.string().regex(/^[0-9]{10}$/),
    dob : Joi.date().timestamp(),
    pass : Joi.string().min(10),
    passcode : Joi.string().regex(/^[0-9]{6}$/),
    passcodeCreationTime : Joi.date().timestamp(),
    //oldPassword : Joi.array().items(Joi.string()),
    resetted : Joi.boolean(),
    otp : Joi.string().regex(/^[0-9]{6}$/),
    otpGenerationTime : Joi.date().timestamp(),
    otpVerified : Joi.boolean(),
    noOfSuccessfullAttempt : Joi.number().positive(),
    noOfFailedAttempt : Joi.number().positive(),
    continousFailedAttempt : Joi.number().positive()
});
module.exports = schema;

主要的nodejs代码

{
    "name":"no22",
    "email":"123@123.com",
    "pass":"1234567890",
    "profilePic":"adadsadasd"
}

错误

    var temp ={};
    temp = req.body;
    token = Math.random().toString(36).substring(3, 15) + Math.random().toString(36).substring(1, 15);
    temp['userId']="temp";
    temp['phase1Token']= token;
    temp['profilePic']=req.body.profilePic;
    temp['pass'] = req.body.pass;
    var r = Joi.attempt(temp,userValidator)
    if(r.error){
        console.log(r.error);
        return res.json(response.validationResponse("invalid user data",res));
    }

任何帮助都将非常有用,谢谢。

0 个答案:

没有答案