【问题标题】:Friend Request System - Express, MongoDB, EJS好友请求系统 - Express、MongoDB、EJS
【发布时间】:2021-01-13 23:51:35
【问题描述】:

我想创建一个社交网络,从而允许用户发送好友请求并与之交互。目前我已经创建了注册、登录和“搜索其他用户功能”。

当我找到并选择另一个用户时,我会显示他们的用户信息并创建了一个“添加朋友”按钮。

任何人都可以帮助我创建“添加朋友”选项吗?我已经环顾了一段时间,但无法找到正确的解决方案。下面我附上了我的 UserSchema 和查找用户的路线:

//User Schema
const UserSchema = new mongoose.Schema({
    firstName: {
        type: String,
        required: true
    },
    lastName: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
},{ 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();
        });
    });
});


【问题讨论】:

标签: javascript mongodb express mongoose social-networking


【解决方案1】:

您可以在用户架构中添加类似的内容:

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)

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 2013-04-28
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 2017-03-24
    • 2011-04-29
    • 1970-01-01
    相关资源
    最近更新 更多