我打算像这样实现一个web api
POST /groups/:groupname/chats/:chatType
可能有几个小组,每个小组最多有两个聊天,一个私人聊天或一个公共聊天。
目前,在我的/ models目录中,两个相关的模式如下所示:
// group.js
...
var groupSchema = new mongoose.Schema({
groupname: {type: String, required: true, index:{unique: true}},
privateChat: {type: mongoose.Schema.Types.ObjectId, ref: 'Chat'},
publicChat: {type: mongoose.Schema.Types.ObjectId, ref: 'Chat'}
});
module.exports = mongoose.model('Group', groupSchema)
// chat.js
var chatSchema = new mongoose.Schema({
chatType: String, // public or private
message: [{text: String}]
});
module.exports = mongoose.model('Chat', chatSchema);
所以问题是如何发布像“Hello World!”这样的消息。到
/groups/boygroup/chats/private
...
我已通过GET /groups/:groupname
方法完成了findOne()
请求,如下所示:
router.get('/groups/:groupname', function(req, res) {
var groupname = req.body.groupname || req.params.groupname;
Group.findOne({
groupname: groupname
}, function(err, group) {
if (err)
return next(err);
if (!group) {
res.status(404).send({
success: false,
message: "group not found"
});
} else {
res.json(group);
}
});
});
但我不知道如何进入特定群组中的特定聊天。也许我的猫鼬模式不好。
任何建议表示赞赏。