2016-03-21 4 views
0

Здравствуйте, я новичок в Express/MongoDB/Node. Я пытаюсь захватить и отобразить результаты строки запроса, которая имеет два входа на представление.Отображение результатов экспресс-запроса в представлении

Вот форма, чтобы получить запрос от SearchBar частичного:

<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», но это зависит от того, какой механизм шаблонов вы используете. Если это нефрит, вы можете использовать функцию «каждый в». – Zalo

ответ

0

Если вы хотите включить параметры запроса (например, ?search=foo) вы могли бы сделать это следующим образом:

 ... 

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

     ... 

Вы можете получить доступ к allItems и location на ваш взгляд, код зависит от того, какой точки зрения двигатель, который вы выбрали.

EDIT: Неясно, хотите ли вы получить результаты запроса базы данных или строку запроса (из запроса получения) в своих представлениях. Ответ выше показывает и то, и другое.

Смежные вопросы