Forms Mongo/Mongoose分页的HTML混淆
我目前收集了大约4000份文档。我希望能够对结果进行分页,这样用户一次只能查看100个 我非常了解提交搜索时在服务器端应该做什么:Forms Mongo/Mongoose分页的HTML混淆,forms,express,pagination,mongoose,Forms,Express,Pagination,Mongoose,我目前收集了大约4000份文档。我希望能够对结果进行分页,这样用户一次只能查看100个 我非常了解提交搜索时在服务器端应该做什么: app.post('/browse/:page', function(req, res) { var page = parseInt(req.params.page); data = {}; data.page = page; data.nextpage = page + 1; data.prevpage = page - 1
app.post('/browse/:page', function(req, res) {
var page = parseInt(req.params.page);
data = {};
data.page = page;
data.nextpage = page + 1;
data.prevpage = page - 1;
var filterOptions = _.transform(req.body, function(result, value, key) {
result[key] = new RegExp(value.replace(/[^A-Za-z 0-9!'-]/g,''), "i");
});
Model.find(filterOptions).sort('brand').skip((page-1)*100).limit(100).exec(function(err, results) {
//do stuff here with results
res.render('browse.ejs', data);
})
})
})
现在,在我的查看页面上,这是我所拥有的,我认为我正在做一些非常错误的事情:
//header here
<div class="wrapper row2">
<div id="container" class="clear">
<section>
<div id="browse-wrap">
<div id="browse-left_col">
<h3>Browse by:</h3><br>
<form action="browse/1" method="post">
//form inputs and such here
<input type="submit" class="button" value="Browse">
</form>
</div>
<div id="browse-right_col">
//table of results here
<p style="text-align:right;"><a href="#" onclick="document.forms[0].attr('action', 'browse/<%=nextpage%>').submit();return false;">Next 100 →</a></p>
</div>
</div>
</section>
</div>
</div>
//footer here
谢谢你的帮助!我对这一点非常陌生,非常感激。我有几点建议: 使用app.get而不是app.post。您正在从服务器检索信息,app.get方法表示HTTP get,而HTTP get又表示检索。正如您所知,app.post方法代表一个HTTP post,应该用于向服务器添加信息。 使用app.get后,您可以将客户端上的页面表示为指向/browse/:page的简单链接 注意页数=0,页数=最后一页的边缘情况。当没有上一页时,您可能不想显示指向上一页的链接。 当您跳过大量文档时,使用skip会导致性能下降。只是要记住一些事情。 服务器:
app.get('/browse/:page', function(req, res) {
...
Model.find().sort('brand').skip((page-1)*100).limit(100).exec(function(err, results) {
res.render('browse.ejs', {data:data, results:results});
});
})
使用ejs的客户端,如示例中所示:
// list data
<ul>
<% for(var i=0; i<results.length; i++) {%>
<li><%= results[i]._id %></li>
<% } %>
</ul>
// show prev/next page links
<a href="/browse/<%= data.prevPage%>">previous</a>
<a href="/browse/<%= data.nextPage%>">next</a>
希望有帮助