如何解决好友请求系统 - Express、MongoDB、EJS
我想创建一个社交网络,从而允许用户发送 frind 请求并与之交互。至此,我已经创建了注册、登录和“搜索其他用户功能”。
当我找到并选择另一个用户时,我会显示他们的用户信息并创建一个“添加朋友”按钮。
任何人都可以帮助我创建“添加朋友”选项的方向吗?我已经环顾了一段时间,但无法找到正确的解决方案。下面我附上了我的 UserSchema 和查找用户的路线:
//User Schema
const UserSchema = new mongoose.Schema({
firstName: {
type: String,required: true
},lastName: {
type: String,password: {
type: String,},{ collection: 'Users' });
//Get single user based on ID
router.get('/user/get:id',ensureAuthenticated,function (req,res) {
MongoClient.connect(DBUri,{useUnifiedTopology: true },function (err,db) {
let dbo = db.db(DBName);
const query = {_id: objectId(req.params.id)}
dbo.collection("Users").find(query).toArray(function(err,resultTasks) {
if (err) throw err;
res.render('../View/findFriend',{
resultTasks: resultTasks
});
db.close();
});
});
});
解决方法
您可以在您的用户架构中添加如下内容:
friends: [{ type : ObjectId,ref: 'User' }],
或
friends: userSchema
选择适合您的那个。
这会做的是给用户添加一个数组,然后你可以存储朋友的ID。(谁是其他用户,因此ref: 'User'
)
然后,当您必须获取用户时,您可以这样做:
User.find(<ID or whatever you have to find Users>).populate('friends')
此外,要推送新朋友,只需使用:user.friends.push(newFriend._id)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。