如何解析请求(或端点)来查询mongoose

时间:2015-05-27 19:48:40

标签: node.js mongodb express mongoose asp.net-web-api

我打算像这样实现一个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);
    }
  });
});

但我不知道如何进入特定群组中的特定聊天。也许我的猫鼬模式不好。

任何建议表示赞赏。

0 个答案:

没有答案