javascript 我无法通过用户的电子邮件找到会员资格

omhiaaxx  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(93)

我正在为我的健身房管理项目创建一个存在列表,在主页上,用户必须输入他的电子邮件,以验证他的存在,如果用户的会员身份,存在是有效的,但我不知道如何做到这一点。
这是会员模型

const mongoose = require('mongoose');

const membershipSchema = new mongoose.Schema({
    
    credit:{
        type:String,
        required:true
    },
    isActive:{
        type:Boolean,
        default:true,
    },
    expiresAt:{
        type:Date,
        min:'2022-12-07'
    },
    user:
    {
        type:mongoose.Schema.Types.ObjectId,
        ref:'User',
        required:false,
    }
}) 



module.exports = mongoose.model("Membership",membershipSchema);

'
下面是用户模型:

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
    name:{
        type:String,
        trim:true,
        required:true
    },
    email:{
        type:String,
        trime:true,
        required:true,
        unique:true
    },
    address:
    {
        type:String,
        required:true,
    },
    phone:
    {
        type:String,
        required:true,
    }
   
}) 



module.exports = mongoose.model("User",userSchema);

下面是我用来查找用户成员资格的代码
'

exports.findMembership = async (req,res) =>{

    const query = {};

    if(req.body.email)
    {
        query.email = req.body.email
    }

    const user = await User.find(query).select("_id")
    
    if(userId)
    {   
        query.user = userId;
        Membership.find(query,(err,membership)=>{
            if(err)
            {
                res.status(400).json({error:JSON.stringify(err)})
            }
            res.json(membership)
        }).populate('user');
    }
    //return res.status(404);
}

'
我尝试通过它的电子邮件获取第一个用户,它的工作,但当我尝试在同一函数中的第二个请求,它返回什么HomePagePOSTMAN PLZ帮助我需要得到这个周末完成

xbp102n0

xbp102n01#

您正在设置用户变量,但针对userId变量检查if条件。您应将findMembership函数更改为以下内容:

exports.findMembership = async (req,res) =>{

const query = {};

if(req.body.email)
{
    query.email = req.body.email
}

const userId = await User.find(query).select("_id")

if(userId)
{   
    query.user = userId;
    Membership.find(query,(err,membership)=>{
        if(err)
        {
            res.status(400).json({error:JSON.stringify(err)})
        }
        res.json(membership)
    }).populate('user');
}
//return res.status(404);

}

相关问题