【发布时间】:2022-01-20 21:25:24
【问题描述】:
我正在尝试使用 EJS 进行注册。因此,我正在检查
- 是否所有输入字段都有值
- 电子邮件是否有效
- 密码长度必须
- 邮箱是否已经注册 如果他们不符合上述条件,请给他们留言。要检查所有这些条件,我在 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
请帮我解决这个问题。
【问题讨论】:
-
您还没有添加 validateEmail 的函数定义,因此它在调用堆栈中未定义,您会收到该错误。
-
stackoverflow.com/a/46181/10281244你可以参考这个函数来验证你的电子邮件。
-
你也可以使用这个 repo 以一种更简单、更干净的方式做到这一点:github.com/validatorjs/validator.js
标签: javascript node.js express mongoose