我正在传递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"}
答案 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);
})
};