我正在嘗試爲nodejs/mongoose驅動的網站添加以下/關注者功能。我遇到了使用下面的方法正確存儲ID的問題。不太確定發生了什麼問題,但它似乎只是將ID正確地保存到下面的部分,而不是更新第一部分的追隨者。Mongoose關注/關注者
我知道這很容易,如果用戶ID只是傳遞到發佈請求,但我認爲存儲在前端的用戶ID是一種安全問題,所以只是使用用戶名來獲得ID會會更好。
// Handles the post request for following a user
router.post('/follow-user', function(req, res, next) {
// First, find the user from the user page being viewed
User.findOne({ username: req.body.username }, function(err, user) {
// Add to users followers with ID of the logged in user
user.followers = req.user._id;
// Create variable for user from page being viewed
var followedUser = user._id;
// Save followers data to user
user.save();
// Secondly, find the user account for the logged in user
User.findOne({ username: req.user.username }, function(err, user) {
// Add the user ID from the users profile the follow button was clicked
user.following = followedUser;
// Save following data to user
user.save();
});
});
});
用戶模型看起來這樣
var userSchema = new Schema({
username: { type: String, required: true, unique: true },
password: { type: String, required: true },
email: { type: String, required: true },
avatar: { type: String },
bio: { type: String },
following: [{ type: Schema.ObjectId, ref: 'User' }],
followers: [{ type: Schema.ObjectId, ref: 'User' }],
});
在此任何瞭解,將不勝感激。
你可以顯示你將回應發回到前端嗎? –