所以我剛開始表達并一直在用貓鼬嘗試它。這是我的問題,我正在嘗試發出一個帖子請求,在其中可以創建新朋友,但僅限于一個用戶。就像一個用戶可以有十個朋友。
用戶架構 -
const userSchema = new mongoose.Schema({
userName: String,
userMail: String,
userPassword: String,
friends: {
type: mongoose.Schema.types.ObjectId,
ref: "friends"
},
});
module.exports= express.model("User, userSchema")
朋友模式 -
const friSchema = new mongoose.Schema({
name: String,
age: Number,
});
module.exports= express.model("friends, friSchema")
我已經嘗試了很多張貼朋友,但似乎不起作用。
我當前的代碼是發布新朋友的地方。
router.post("user/:userName/friends", async (req, res) => {
const newMember = new User({
friends: req.body.friends,
});
const foundMember = await Member.findOne({ userName: req.params.userName });
try {
const savedMember = await newMember.save();
res.json(savedMember);
} catch (err) {
res.json({ message: err });
}
});
這是我可以發布新用戶的代碼(有效)
router.post("/user", async (req, res) => {
const newMember = new User({
userName: req.body.userName,
userMail: req.body.userMail,
userPassword: req.body.userPassword,
});
try {
const savedMember = await newMember.save();
res.json(savedMember);
} catch (err) {
res.json({ message: err });
}
});
uj5u.com熱心網友回復:
用戶架構的變化 -
const userSchema = new mongoose.Schema({
userName: String,
userMail: String,
userPassword: String,
friends: [mongoose.Types.ObjectId]
});
好友創建API -
router.post('user/:userName/friends', async (req, res) => {
try {
const foundMember = await User.findOne({ userName: req.params.userName });
if (!foundMember) return res.json({ message: 'User not found'})
// bulk create friends
const newFriends = await friends.insertMany(req.body.friends); // assuming friends is an array of object with key name and age
const frieldIds = newFriends.map((friend) => friend._id);
foundMember.friends = [...foundMember.friends, ...frieldIds];
await foundMember.save();
res.json(foundMember);
} catch (err) {
res.json({ message: err });
}
});
uj5u.com熱心網友回復:
您應該將您的friends 屬性更改userSchema 為陣列:
const userSchema = new mongoose.Schema({
userName: String,
userMail: String,
userPassword: String,
friends: [
{
type: mongoose.Schema.types.ObjectId,
ref: "friends"
},
],
});
然后,嘗試創建一個朋友檔案,然后將其添加到 物體的friends 陣列中User:
router.post('user/:userName/friends', async (req, res) => {
try {
const foundMember = await User.findOne({ userName: req.params.userName });
if (!foundMember) return res.json({ message: 'User not found'})
for (const friend of req.body.friends) {
// Create new friend
const newFriend = await friends.create({ ...friend });
// Add friend to user
foundMember.friends.push(newFriend._id);
await foundMember.save()
}
res.json(foundMember);
} catch (err) {
res.json({ message: err });
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/360475.html
