2017-04-23 1 views
0

먼저 프론트 엔드에 < % = searchString %>을 보냈습니다. 그런 다음 검색 페이지에 정렬 기능을 추가하려고합니다. 정렬 기능으로 검색을 다시 실행할 때 searchString 값을 백엔드로 다시 보내려면 어떻게해야합니까?프론트 엔드 jQuery에서 백엔드 node.js로 데이터를 전달하는 방법

Node.js를 세그먼트 코드

router.get('/search', function(req, res){ 
 
\t console.log("Searching " + JSON.stringify(req.query)); 
 
    var results = []; 
 
    for(var i in restaurants) { 
 
     for(var j in restaurants[i]["categories"]) { 
 
      var category = restaurants[i]["categories"][j]; 
 
      if(req.query.q && req.query.q.indexOf(category) != -1) { 
 
       results.push({ 
 
        name: restaurants[i]["name"], 
 
        price: restaurants[i]["priceCat"], 
 
        categories: restaurants[i]["categories"] 
 
       }); 
 
      } 
 
     } 
 
    } 
 
    console.log("Search Results: " + JSON.stringify(results)); 
 
\t res.render('pages/search', { 
 
     pageTitle: "search", 
 
     searchString: req.query.q, 
 
     results : results 
 
    }); 
 
});
<%- contentFor('body') %> 
 
<h1>Search Results: <small><%=searchString%></small></h1> 
 
<% if (results.length === 0) { %> 
 
    <h4>No results found</h4> 
 
<% } else { %> 
 
    <h2><small>Sort by:</small> 
 
    <div class="row-sm-1"> 
 
     <form action="/search" method="GET"> 
 
      <div class="form-group"> 
 
      <a href="/search"> 
 
       <button type="submit" name="price" class="btn btn-primary btn-lg">Price</button> 
 
      </a> 
 
      </div> 
 
     </form> 
 
    </div> 
 
    </h2> 
 
    <table class="table"> 
 
    <tr> 
 
     <th>Name</th><th>Price</th><th>Category</th> 
 
    </tr> 
 
    <% for(var i = 0; i < results.length; i++) {%> 
 
     <tr> 
 
     <td><%= results[i].name%></td> 
 
     <td><%= results[i].price%></td> 
 
     <td> 
 
      <% for(var j = 0; j < results[i].categories.length; j++) {%> 
 
      <%= results[i].categories[j]%><% if(j != results[i].categories.length - 1) {%>,<%}%> 
 
      <%}%> 
 
     </td> 
 
     </tr> 
 
    <%}%> 
 
    <%}%> 
 
</table>

+1

같은 방법으로 당신이 어떤 백엔드와 마찬가지로 기본적인 아이디어를 얻을 도움이 될 것이다. NodeJS와는 아무런 관련이 없습니다. jQuery에서 $ .get 또는 $ .post를 사용할 수 있습니다. –

답변

0

당신은 당신의 경우에 Node.js를/express.js에 정의 된 경로를 칠 JQuery와의 $ .post를 사용할 수 있습니다.

나는 건축 스타일에 대한 기본적인 마음 매핑을 놓치고 있다고 생각합니다. 이 태스크에는 REST 아키텍처를 사용할 수 있습니다. REST에

설명 : What exactly is RESTful programming?

이뿐만 아니라

enter image description here

관련 문제