如何将数据从前端jQuery传递到后端node.js
问题描述:
我首先将<%= 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>
答
您可以使用.post的$ jQuery中打在你的情况下,node.js中/ express.js定义的路线。
我想你错过了关于建筑风格的基本思维导图。 REST体系结构可用于此任务。
说明对REST:What exactly is RESTful programming?
这将有助于获得基本的想法以及
用同样的方法,你会与任何后端。它与NodeJS无关。你可以在jQuery中使用$ .get或$ .post。 –