2016-11-17 7 views
0

ExpressとMongooseでAPIを作成するのは初めてです。Express Mongoose apiに2つのパラメータを渡して1つの結果を返す

私は私の基本的なエンドポイントをセットアップすることができて、GET、POST、PUT、など

しかし、今、私は私がコレクションを検索し、単一の結果を返すために2つのパラメータを渡す1つのセットアップを設定したいました。

パラメータを正しく渡しているとは思われません。私の角度で

は、私が正しいです、私が知っている、以下のサービスコール、持っている:

.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.paramsないreq.param

を使用し、それぞれのparam

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

は、このプロパティは、プロパティを含むオブジェクトである前に、私はスラッシュを持っています ルート「pa」にマップされていますラマーズ "。たとえば、route/user /:の名前が の場合、 "name"プロパティはreq.params.nameとして使用できます。このオブジェクト のデフォルトは{}です。

あなたはちょうどこの:email:passwordのような1つのパラメータを持っています。エクスプレスでルートセグメントを認識できるように、URLセグメントを作成するにはスラッシュを追加する必要があります。

関連する問題