【发布时间】:2020-12-05 09:16:40
【问题描述】:
我正在尝试检查与会者的每封电子邮件,看看他们是否是注册用户。如果没有,我会给他们发一封电子邮件(尚未编码,稍后再做)。
这是事件和用户架构:
const UserSchema = new Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
});
const Event = new Schema({
title: {
type: String,
required: true
},
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'users'
},
attendees:[
{email: {
type: String,
required: true
},
name: {
type: String,
required: true
},
status: {
type: String
}}
]
});
router.post('/', auth, async (req, res) => {
const {title,
attendees
} = req.body
if (!title) {
return res.status(400).json({ msg: 'Please enter a title' });
}
try{
const newEvent = new Event({
title,
user: req.user.id,
attendees: attendees.map(x => ({
email: x.email,
name: x.name,
status: x.status,
})),
});
const attendeeExists = await User.findOne({"attendees.email":email});
if (!attendeeExists) throw Error("User doesn't exist. Send email");
最后两行给我一个错误:未定义电子邮件。 不知道我错过了什么。
这适用于用户路线:
const user = await User.findOne({ email });
【问题讨论】:
-
看不到您发布的代码中定义的
email,因此出现错误。这个email来自哪里?请分享更多细节。 -
添加了事件和用户的架构。
-
所以您想测试是否有任何参加者的电子邮件存在于 db 中,它来自
req.body中的attendees变量? -
没错!我想用用户电子邮件检查与会者电子邮件。