gpt4 book ai didi

reactjs - 类型错误 : Expected string but received a undefined

转载 作者:行者123 更新时间:2023-12-05 05:08:34 24 4
gpt4 key购买 nike

在将其发布到 mongodb 数据库之前验证名称和密码时,它显示了一些错误

const Validator = require('validator');
const isEmpty = require('./is-empty');

module.exports = function validateRegisterInput(data){
let errors = {};

data.name = !isEmpty(data.name) ? data.name : '';
data.email = !isEmpty(data.email) ? data.email : '';
data.password = !isEmpty(data.password) ? data.password : '';
data.password = !isEmpty(data.password2) ? data.password2 : '';


if((!Validator.isLength(data.name , { min:2, max:20 }))){
errors.name = 'Name must be between 2 and 20 characters';
}

if(Validator.isEmpty(data.name)){
errors.name ='Name field is required';
}

if(Validator.isEmpty(data.email)){
errors.email ='Email field is required';
}

if(Validator.isEmail(data.email)){
errors.email ='Email is invalid';
}

if(Validator.isEmpty(data.password)){
errors.password ='Password field is required';
}

if(Validator.isLength(data.password, {min:8 })){
errors.password ='Password field is required';
}

if(Validator.isEmpty(data.password2)){
errors.password2 ='Confirm Passwords field is required';
}

if(Validator.equals(data.password, data.password2)){
errors.password2 = 'Passwords must match';
}

return {
errors,
isValid: isEmpty(errors)
};
};

在 postman 中显示错误

TypeError: Expected string but received a undefined.
   at assertString (E:\MERN\devconnector\node_modules\validator\lib\util\assertString.js:28:11)
   at Object.isEmpty (E:\MERN\devconnector\node_modules\validator\lib\isEmpty.js:19:29)
   at validateRegisterInput (E:\MERN\devconnector\validation\register.js:38:18)
   at router.post (E:\MERN\devconnector\routes\api\users.js:27:33)
   at Layer.handle [as handle_request] (E:\MERN\devconnector\node_modules\express\lib\router\layer.js:95:5)
   at next (E:\MERN\devconnector\node_modules\express\lib\router\route.js:137:13)
   at Route.dispatch (E:\MERN\devconnector\node_modules\express\lib\router\route.js:112:3)
   at Layer.handle [as handle_request] (E:\MERN\devconnector\node_modules\express\lib\router\layer.js:95:5)
   at E:\MERN\devconnector\node_modules\express\lib\router\index.js:281:22
   at Function.process_params (E:\MERN\devconnector\node_modules\express\lib\router\index.js:335:12)
   at next (E:\MERN\devconnector\node_modules\express\lib\router\index.js:275:10)
   at Function.handle (E:\MERN\devconnector\node_modules\express\lib\router\index.js:174:3)
   at router (E:\MERN\devconnector\node_modules\express\lib\router\index.js:47:12)
   at Layer.handle [as handle_request] (E:\MERN\devconnector\node_modules\express\lib\router\layer.js:95:5)
   at trim_prefix (E:\MERN\devconnector\node_modules\express\lib\router\index.js:317:13)
   at E:\MERN\devconnector\node_modules\express\lib\router\index.js:284:7

最佳答案

请检查您在 isEmpty.js 文件中声明 isEmpty 函数的位置,您可能使用了箭头函数,这不应该。

const isEmpty = value => {
value === undefined ||
value === null ||
(typeof value === "Object" && Object.keys(value).length === 0) ||
(typeof value === "string" && value.trim().length === 0)

}

所以,去掉箭头函数“{}”末尾的大括号,它不应该在那里。

关于reactjs - 类型错误 : Expected string but received a undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58204450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com