私は、ユーザーが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人のユーザー間の友情を確立する方法はわかりません。私の究極の目標は、目的の受信者にフレンドリクエストを送信したWebページ上のボタンを使用して、リクエストを受け入れるか拒否するかを選択することです。
私はこれらの2つのスキーマで何をすべきかわからないので、これに関する助けは素晴らしいでしょう。ありがとう!
ありがとうございます。私は物事がどのように機能するかのレイアウトが本当に好きです。どのくらいリクエスタが誰であるかは、友人がどのくらい知っていますか? FriendRequestSchemaには、参照するIDはありません。しかし、あなたがそれを説明するとき、あなたは "IDユーザーリクエスト(int)"と言います。 – jblew
レイアウトをデザインするのに役立ちます。あなたのアプリはユーザー認証システムを持っていると思いますよね?ユーザーが正常にログインした後、IDを記録することができます。ボタン送信の友人要求では、 'get'メソッドを使用してリクエスタIDを取得するか、より強力であると考える別の簡単な方法でリクエスタIDを取得できます。私は、frientRequestSchemaが両方のユーザーのIDを取得するために使用されることを明確にしたいと思います。したがって、それは1.リクエスタ(ID)2.受信者(ID)と3.ステータス。 – arrlancore
はい、私はユーザー管理システムを用意しています。各ユーザは 'passport.js'から自動的にIDを割り当てられます。ユーザーAが「友達を追加」ボタンをクリックすると、IDを記録してスキーマ内のリクエスタに設定する必要がありますか?その後、目的の友人は受信者に設定されます。最後に、Status(int)は、友情の状態に応じて1,2または3に設定されます。これは正しいです?ちょうど明確化、ありがとう – jblew