我正在创建一个运动网站,用户可以在其中创建团队。我希望创建的新团队自动推送到用户成员资格和领导力数组中。但我不知道如何请求新创建的团队,如以下代码所示:
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('/')
}以下是用户的架构:
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的架构:
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'}]
})发布于 2020-04-24 22:09:16
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('/')
}尝尝这个。此外,更好的方法是创建不同的函数来创建对象,然后在这里调用它。
https://stackoverflow.com/questions/61408170
复制相似问题