添加参数来表达路径,检索相反的

时间:2015-04-08 19:32:31

标签: json node.js mongodb express mongoose

我正在传递api调用的参数给我的express,但是当我检索json数据时,它会返回除查询匹配的所有内容。

以下是在我的UserVote api中查找用户ID的控制器:

exports.list = function(req, res){
  UserVote.find({userid: req.query.userid}, function(err, user_votes){
    if(err) { return handleError(res, err); }
    return res.json(200, user_votes);
  })
};

我的路线如下:

router.get('/ui/:userid', controller.list);

当我在没有参数/ api / uservotes的情况下调用api时的json示例:

{"_id":"1","billid":"233","stance":"yea"},{"_id":"2","userid":"5524c71ba13d792907d47c14","billid":"234","stance":"yea"},{"_id":"3","userid":"5524","billid":"234","stance":"yea"},

并使用参数api / uservotes / ui / 5524c71ba13d792907d47c14:

{"_id":"1","billid":"233","stance":"yea"}

1 个答案:

答案 0 :(得分:4)

您试图以错误的方式获取userid参数。您将参数定义为路由参数,但您尝试将其作为查询参数进行访问。您需要使用req。 params .userid,而不是req。查询 .userid,如下所示:

exports.list = function(req, res){
  UserVote.find({userid: req.params.userid}, function(err, user_votes){
    if(err) { return handleError(res, err); }
    return res.json(200, user_votes);
  })
};