2016-11-17 50 views
0

我是使用Express和Mongoose創建API的新手。將兩個參數傳遞給Express Mongoose API以返回單個結果

我已經能夠建立我的基本終點,GET,POST,放等

但現在我想建立一個帳戶,我傳遞兩個參數來搜索集合,並返回一個結果。

我不認爲我正確地傳遞參數。

在我的角度,我有以下服務調用,這是我所知道的是正確的:

.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); 
    }); 
}); 

回答

1

我用req.paramsreq.param

,我每個PARAM

app.get("/:email/:password", function(req, res){ 
    console.log(req.params.email) 
    console.log(req.params.password) 
}) 

此屬性包含屬性的對象之前有一個斜槓映射到名爲 的路由「pa rameters」。例如,如果您有route/user /:名稱, 則「name」屬性可用作req.params.name。此對象 默認爲{}。

你只有一個參數,看起來像這樣:email:password。你必須添加一個斜槓來創建一個URL段,以便express可以將其識別爲路由參數。

相關問題