我正在尝试为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' }],
});
在此任何了解,将不胜感激。
你可以显示你将回应发回到前端吗? –