我試圖讓用戶向其他用戶發送類似Facebook和其他社交媒體平臺的朋友請求。我已經開始創建這個功能,但由於我是mongoDB和整個Schema的新手,很快就陷入了困境。使用Express&MongoDB的朋友請求系統
這裏是模型我現在有:
// User Schema
var UserSchema = new Schema({
_id: {
type: Number
},
name: {
type: String
},
username: {
type: String,
index: true
},
password: {
type: String,
required: true
},
email: {
type: String
},
friends: [{
friendName: {
type: Schema.ObjectId,
required: true,
ref: 'User'
},
duration: {
type: Number
}
}]
});
// Friendship Schema
var FriendshipSchema = new Schema({
participants: [{
type: Schema.Types.ObjectId,
ref: 'User'
}],
requestTo: {
type: Schema.Types.ObjectId,
ref: 'User'
},
accepted: {
type: Boolean,
default: false
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
var Friendship = module.exports = mongoose.model('Friendship', FriendshipSchema);
var User = module.exports = mongoose.model('User', UserSchema);
這是據我已經得到了。從這裏,我不知道如何使用這些模式來建立2個用戶之間的友誼。我的最終目標是在網頁上有一個按鈕,將好友請求發送給目標收件人,然後他們可以接受或拒絕該請求。
任何與此有關的幫助將是非常棒的,因爲我不知道在這裏使用這兩種模式要做什麼。謝謝!
謝謝你的迴應。我真的很喜歡你的事情將如何工作的佈局。朋友請求如何知道請求者是誰?在您的FriendRequestSchema中沒有可供參考的ID。但是當你解釋它時,你提到了「ID用戶請求(int)」。 – jblew
很高興聽到它可以幫助您設計佈局。我認爲你的應用將擁有用戶認證系統,對吧?然後在用戶成功登錄後,您可以記錄他們的ID。在按鈕發送好友請求時,您可以使用方法'get'或使用另一種您認爲功能更強大的簡單方法來接收請求者ID。我想澄清一下,frientRequestSchema將用於獲取這兩個用戶的ID。因此它將是1.請求者(ID)2.收件人(ID)和3.狀態。 – arrlancore
是的,我確實有一個用戶管理系統。每個用戶都有自動從'passport.js'分配的ID。所以當用戶A點擊「添加朋友」按鈕時,它應該記錄他們的ID並將其設置爲模式內的請求者?然後,預期的朋友將被設置爲收件人。最後,狀態(int)根據友誼的狀態設置爲1,2或3。它是否正確?只是澄清,謝謝 – jblew