首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用mongoose和Node.js请求新创建的模型?

如何使用mongoose和Node.js请求新创建的模型?
EN

Stack Overflow用户
提问于 2020-04-24 20:16:53
回答 1查看 35关注 0票数 0

我正在创建一个运动网站,用户可以在其中创建团队。我希望创建的新团队自动推送到用户成员资格和领导力数组中。但我不知道如何请求新创建的团队,如以下代码所示:

代码语言:javascript
复制
const Team = require('../models/Team.js')
const path = require('path')

module.exports = async (req,res)=>{
   await Team.create({
        ... req.body,
        teamName: req.body.teamname ,
        sportType: req.body.sporttype,
        description: req.body.description,
        location: req.body.location,
        members: [req.session.userId],
        leaders: [req.session.userId]
    });


        const user = await req.session.userId;
        const teams = //Request newly created Team
        await user.leadership.push(teams)
        await user.membership.push(teams)
        await user.save()
    res.redirect('/')

}

以下是用户的架构:

代码语言:javascript
复制
const UserSchema = new Schema({
    username: {
        type: String,
        required: true,
        unique: true 
    },
    password: {
        type: String,
        required: true
    },
    membership: [{ type: Schema.Types.ObjectId, ref: 'Team' }],
    leadership: [{type: Schema.Types.ObjectId, ref: 'Team'}]
});

以下是Team的架构:

代码语言:javascript
复制
const TeamSchema = new Schema({
    teamName: String,
    sportType: String,
    description: String,
    location: String,
    members: [{ type: Schema.Types.ObjectId, ref: 'User' }],
    leaders: [{type: Schema.Types.ObjectId, ref: 'User'}]
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-24 22:09:16

代码语言:javascript
复制
module.exports = async (req,res)=>{
    const user = User.findById(req.session.userId)
    const teams = await Team.create({
        ... req.body,
        teamName: req.body.teamname ,
        sportType: req.body.sporttype,
        description: req.body.description,
        location: req.body.location,
        members: [req.session.userId],
        leaders: [req.session.userId]
    });
    await user.leadership.push(teams)
    await user.membership.push(teams)
    await user.save()
    res.redirect('/')
}

尝尝这个。此外,更好的方法是创建不同的函数来创建对象,然后在这里调用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61408170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档