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>
と同じ方法あなたが任意のバックエンドと同じように基本的なアイデアを得るために役立つだろう。 NodeJSとは何の関係もありません。 jQueryで$ .getまたは$ .postを使用できます。 –