2016-03-21 14 views
0

こんにちは、私はExpress/MongoDB/Nodeを初めて使用しています。私は、キャプチャし、ビューに2つの入力を持つクエリ文字列の結果を表示しようとしています。ここでExpress Query String結果をビューで表示

は、部分的な検索バーからクエリを取得するためのフォームです。ここ

<form class="navbar-form navbar-left" action="/searchresult" method="GET"> 
     <div class="form-group"> 
     <input class="form-control" type="text" name="name" placeholder="Search Dish"> 
     </div> 
     <div class="form-group"> 
     <input class="form-control" type="text" name="location" placeholder="zipcode"> 
     </div> 
     <button type="submit" class="btn btn-default"></button> 

は、結果を見つけるためのルートです:

//SEARCH Route - item query results 
router.get("/searchresult", function(req,res){ 
    //Get search results 
    Item.find({name:req.query.name, location:req.query.location}, function(err, allItems) 
    { 
     if(err){ 
      console.log(err); 
     } else { 
      res.render("searchresult",{allItems}); 
     }  
    }); 
}); 

私はビューで結果を表示するにはどうすればよいですか?

 <div class="container"> 
      <h1>Search Results</h1> 
     </div> 
     //Need Help Here 
+0

最初に、必要なデータを取得していることを確認してください( 'allItems'がokかどうかを確認してください)。 'allItems'変数にループすることはできますが、使用しているテンプレートエンジンによって異なります。それがヒスイなら、あなたは 'each in'機能を使うことができます。 – Zalo

答えて

0

クエリパラメータ(?search=foo等)を含めたい場合は、そのようにそれを行うだろう:

 ... 

     res.render('searchresult', {allItems: allItems, location: req.query.location}); 

     ... 

あなたは、あなたのビューでallItemslocationにアクセスすることができ、コードがどのようなビューに依存しますあなたが選んだエンジン。

EDIT:あなたのビューでは、databseクエリ結果、または(get要求からの)クエリ文字列が必要かどうかは不明です。上の答えは両方を示しています。

関連する問題