在nodejs中创建注册系统时,获取未定义错误的isEmail

编程入门 行业动态 更新时间:2024-10-05 07:25:28

在nodejs中创建注册系统时,获取未定义<a href=https://www.elefans.com/category/jswz/34/1771449.html style=错误的isEmail"/>

在nodejs中创建注册系统时,获取未定义错误的isEmail

[抱歉,我是javascript和nodejs的新手,但是基本上我正在尝试创建一个注册系统。我已经附加了表单验证器和用户模式,但是我一直收到未定义错误的isEmail。我不确定是否有更简便的方法来检查这些条件。之前,我使用的是req.checkBody,但是我不确定如何使用它来检查某个用户是否超过给定年龄。

  router.post('/register', function(req, res, next) {
  var name = req.body.name; 
  var email = req.body.email;
  var password = req.body.password; 
  var password2 = req.body.password2; 
  var bday = req.body.bday; 
  var birthday = moment(bday); 
  let errors = []; 

  // Form Validator
  if (!name || !email || !password || !password2 || !bday) {
    errors.push({ msg: 'Please fill in all required fields' }); 
  }

  if (!req.body.email.isEmail()) {
    errors.push({ msg: 'Please provide an appropriate email' }); 
  }  

  if (req.body.password2 != req.body.password) {
    errors.push({ msg: 'Please make sure your passwords match' }); 
  }

  if (!birthday.isValid()) {
    errors.push({ msg: 'Date of Birth must be in appropriate format' }); 
  }

  if (moment().diff(birthday, 'years') < 13) {
    errors.push({ msg: 'User must be at least 13 years of age' }); 
  }
    if(errors.length > 0){
    res.render('register', {
      errors, 
      name, 
      email, 
      password, 
      password2, 
      bday
    });
  } else{
    var newUser = new User({
      name: name,
      email: email,
      password: password,
      bday: bday, 
    });


var UserSchema = mongoose.Schema({
    password: {
        type: String
    },
    email: {
        type: String
    },
    name: {
        type: String
    },
    bday: {
        type: String
    }
});
回答如下:

当您在这里查看时

  if (!req.body.email.isEmail()) {
    errors.push({ msg: 'Please provide an appropriate email' }); 
  }

您正在尝试从isEmail访问email属性,该属性必须不存在。

要求可能看起来像什么:{ req: { body: {} } },如您所见,电子邮件必须为undefined,并且undefined不包含isEmail属性。

您可以做的是

  if (req.body.email && !req.body.email.isEmail()) {
    errors.push({ msg: 'Please provide an appropriate email' }); 
  }

在尝试访问req.body.email之前先检查isEmail是否存在。

更多推荐

在nodejs中创建注册系统时,获取未定义错误的isEmail

本文发布于:2024-05-07 21:38:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757365.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   未定义   系统   nodejs   isEmail

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!