Express 将验证器从Joi更改为Joi/hapi

Express 将验证器从Joi更改为Joi/hapi,express,joi,Express,Joi,在Joi的库更改为Joi/hapi之后,我的验证出现了问题。 我不明白如何将其更改为较新的验证器。 继续得到同样的错误 未处理的PromisejectionWarning:ReferenceError:未定义值 任何帮助或指导都将不胜感激 代码如下: const-Joi=require(“@hapi/Joi”); const HttpStatus=require(“http状态代码”); const bcrypt=require(“bcryptjs”); const jwt=require(“j

在Joi的库更改为Joi/hapi之后,我的验证出现了问题。 我不明白如何将其更改为较新的验证器。 继续得到同样的错误

未处理的PromisejectionWarning:ReferenceError:未定义值

任何帮助或指导都将不胜感激

代码如下:

const-Joi=require(“@hapi/Joi”);
const HttpStatus=require(“http状态代码”);
const bcrypt=require(“bcryptjs”);
const jwt=require(“jsonwebtoken”);
const User=require(“../models/userModels”);
常量Helpers=require(“../Helpers/helper”);
const dbConfig=require(“../config/secret”);
module.exports={
/*
CreateUser(请求、恢复){
控制台日志(请求主体);
}*/
异步CreateUser(req,res){
const schema=Joi.object().keys({
用户名:Joi.string()
.min(5)
.max(10)
.required(),
电子邮件:Joi.string()
.email()
.required(),
密码:Joi.string()
.min(5)
.required()
});
const validation=schema.validate(请求主体);
res.send(验证);
const userEmail=wait User.findOne({
电子邮件:Helpers.小写(req.body.email)
});
如果(用户电子邮件){
返回res
.status(HttpStatus.CONFLICT)
.json({message:“电子邮件已存在”});
}
const userName=wait User.findOne({
用户名:Helpers.firstUpper(请求主体用户名)
});
如果(用户名){
返回res
.status(HttpStatus.CONFLICT)
.json({消息:“用户名已存在”});
}
返回bcrypt.hash(value.password,10,(err,hash)=>{
如果(错误){
返回res
.status(HttpStatus.BAD_请求)
.json({message:“错误哈希密码”});
}
常数体={
用户名:Helpers.firstUpper(value.username),
电子邮件:Helpers.小写(value.email),
密码:哈希
};
User.create(body)
。然后(用户=>{
const token=jwt.sign({data:user},dbConfig.secret{
呼气蛋白:“5h”
});
res.cookie(“auth”,token);
物件
.status(HttpStatus.CREATED)
.json({消息:“用户已成功创建”,用户,令牌});
})
.catch(错误=>{
物件
.status(HttpStatus.INTERNAL_SERVER_错误)
.json({消息:“发生错误”});
});
});
}
};

这个
值是从哪里来的
value.password
??我认为它必须是
req.body.password
&
req.body.username
&
req.body.email
或者在上面定义值
const validation=schema.validate(req.body)你在做什么行?据我所知,你没有检查是否有错误。您也没有返回
res.send