【问题标题】:How to fix: ReferenceError: validateEmail is not defined如何修复:ReferenceError: validateEmail 未定义
【发布时间】:2022-01-20 21:25:24
【问题描述】:

我正在尝试使用 EJS 进行注册。因此,我正在检查

  1. 是否所有输入字段都有值
  2. 电子邮件是否有效
  3. 密码长度必须
  4. 邮箱是否已经注册 如果他们不符合上述条件,请给他们留言。要检查所有这些条件,我在 userCtrl.js 文件中有以下代码 用户Ctrl.js
const Users = require("../models/userModel");

const userCtrl = {
  //! Register User
  register: async (req, res) => {
    try {
      const { name, email, password } = req.body;
      // Check If All fields are filled with values or not
      if (!name || !email || !password) {
        return res.status(400).json({ masg: "Please fill allfields." });
      }
      // Check If email is valid
      if (!validateEmail(email)) {
        return res.status(400).json({ masg: "Please enter valid email." });
      }
      //Check password length
      if (password.length < 6) {
        return res
          .status(400)
          .json({ masg: "Password must be atleast 6 characters long." });
      }
      const user = await Users.findOne({ email });
      // Check If email is already registered
      if (await Users.findOne({ email })) {
        return res.status(400).json({ masg: "User already exists." });
      }
      res.json({ msg: "User Registered Successfully!" });
    } catch (err) {
      console.log(err);
      return res.status(500).json({ msg: err.message });
    }
  },
};

//! Exporting User Controller
module.exports = userCtrl;

这里是供参考的用户模块。

const mongoose = require("mongoose");
const { Schema } = mongoose;

const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: [true, "Please enter your name"],
    trim: true,
  },
  email: {
    type: String,
    required: [true, "Please enter your email"],
    trim: true,
    unique: true,
  },
  password: {
    type: String,
    required: [true, "Please enter your password"],
    trim: true,
  },
  role: {
    type: Number,
    default: 0, // 0 for user, 1 for admin
  },
  avator: {
    type: String,
    default:
      "https://res.cloudinary.com/manix/image/upload/v1639722719/avator/istockphoto-1214428300-170667a_c4fsdt.jpg",
  },
});
//! Exporting User Modules
module.exports = mongoose.model("Users", userSchema);

但是当我尝试使用 Postman 注册用户时,我收到了这个错误。 enter image description here

请帮我解决这个问题。

【问题讨论】:

标签: javascript node.js express mongoose


【解决方案1】:

问题可能在这里发生

if (!validateEmail(email))

您的validateEmail() 函数位于何处?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2020-07-24
    • 2019-07-07
    • 2012-08-24
    • 1970-01-01
    相关资源
    最近更新 更多