我是使用Express和Mongoose创建API的新手。
我已经能够设置我的基本端点,获取,发布,放置等。
但是现在我想设置一个我传递两个参数来搜索集合并返回单个结果。
我认为我没有正确传递参数。
在我的角度,我有以下服务电话,我知道这是正确的:
.factory('LoginFactory', function($resource){
return $resource('/api/user?email=:eml&password=:pwd', {}, {
query:{ method:'GET', isArray:true, params:{ eml:'@eml', pwd:'@pwd'}}
});
});
但我不认为我在快递/猫鼬API中正确行事。这是我的终点:
router.route('/:email:password')
.get(function(req, res){
User.findOne({email:req.param.email, password:req.param.password}, function(err, user){
if(err)
res.send(err);
res.json(user);
});
});
答案 0 :(得分:1)
我使用req.param
而不是app.get("/:email/:password", function(req, res){
console.log(req.params.email)
console.log(req.params.password)
})
我在每个参数之前都有一个斜杠
:email:password
此属性是一个包含映射到named的属性的对象 路线“参数”。例如,如果您有route / user /:name, 然后“name”属性可用作req.params.name。这个对象 默认为{}。
你只有一个看起来像union
的参数。您必须添加斜杠来创建URL段,以便express可以将其识别为路由参数。