nodeJs+express+ejs+mongoose实现翻页原理1
发布于 11 年前 作者 ckken 10052 次浏览 最后一次编辑是 8 年前

网上找了很多类似教程发现无果 故自己大概写了实现原理分为2种方式 一种是AJAX 一种是直接请求 2种方式都有他们的共同点 就是异步

首先是传值请求(路由方式这里不论述 不懂可以看看express教程)

exports.index = function (req, res, next) { var page = req.query.p; var perPage = (req.query.pr)?req.query.pr:3;

db.allTodos(page,perPage,function (err, todos) {
    if (err) {
        return next(err);
    }
	//console.log(todos);
    res.render('index.html', {todos: todos.data,count:todos.count});
});

}; 首先是常规的传值

其中page 是当前页面 perpage 是每一页显示数量 然后调用 岛ALLTODOS 其实就是model

exports.allTodos = function(page,perPage,callback) { //获取总数 Todo.count({}, function (err, count) { //获取列表 Todo.find({}).sort({’_id’:-1}).skip((page-1)*perPage).limit(perPage).exec(function(err,doc){ var d= []; d.data = doc; d.count = count; callback(err,d);

		})
});

} 根据以上代码 我们可以看到真个过程都是异步进行 最后结果我们返回到 index里面

res.render(‘index.html’, {todos: todos.data,count:todos.count}); 然后我们包涵了翻页3个必要参数 包括 page perpage count 这样就可以实现业务逻辑了 …… 详情可以关注我的BLOG enter link description here

1 回复

用skip就算了吧

回到顶部