前言

在上一篇Node.js、express、mongodb 入门(基于easyui datagrid增删改查) 的基础上实现了分页查询、带条件搜索。

实现效果

1、列表第一页。

2、列表第二页

3、条件搜索

分页实现

1、分页实现使用了Mongodb的query.skip().limit().where() 这三个方法,然后利用query.exec()。

2、我在页面使用的是easyui datagrid,从datagrid往后台传page和rows是用POST方式传,我刚开始用req.params.page没拿到数据,后使用req.body.page和req.body.rows拿到page和rows, 拿前台查询条件一样类似处理。

3、计算分页条件。 从前台拿到的page默认是从1开始的,所以计算Skip的参数为(page-1)*rows。

4、往前台返回数据时不仅要返回分页后的数据,还要返回所有数据的总数(Length), 因为easyui datagrid的数据源需要。即:

jsonArray={rows:rs,total:result.length};
res.json(jsonArray);

实现代码

/****************************
get paged list
************************/
router.post('/index/pagelist',function(req,res){
var count=0;
var page=req.body.page;
var rows=req.body.rows; var stuname=req.body.username;
console.log(stuname);
console.log("page:"+page+",rows:"+rows); var query=student.find({});
query.skip((page-1)*rows);
query.limit(rows);
if(stuname){
query.where('stuname',stuname);
}
//计算分页数据
query.exec(function(err,rs){
if(err){
res.send(err);
}else{
//计算数据总数
student.find(function(err,result){
jsonArray={rows:rs,total:result.length};
res.json(jsonArray);
}); }
}); });

参考资料

1、http://www.cnblogs.com/caiya928/p/4776437.html。

2、http://www.nonb.cn/blog/nodejs-mongoose-query-chinaese.html

Node.js、express、mongodb 实现分页查询、条件搜索的更多相关文章

  1. Node.js Express+Mongodb 项目实战

    Node.js Express+Mongodb 项目实战 这是一个简单的商品管理系统的小项目,包含的功能还算挺全的,项目涵盖了登录.注册,图片上传以及对商品进行增.删.查.改等操作,对于新手来说是个很 ...

  2. Node.js+Express+MongoDB数据库实现网页注册登入功能

    通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能 项目准备: 1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.h ...

  3. node.js+express+mongodb

    主要是想用node.js链接mongodb,用的是mongoose.用ejs引擎,扩展到.html比较容易 小例子结构简单,框架清晰. 提交方法 路径 方法 作用 get add     post a ...

  4. 【nodejs笔记1】配置webstorm + node.js +express + mongodb开发博客的环境

    1. 安装webstorm 并破解 2. 安装node (以及express框架) 至官网下载并安装.(http://nodejs.org)v0.10.32   msi  安装后测试,打开命令行, c ...

  5. Node.js +Express+MongoDB+mogoose+ejs+bootstrap+jquery

    Node.js + MongoDB 项目实战(二)  创建项目 在项目实战(一)中,已经配置好了开发环境(详见:http://www.cnblogs.com/jameslong/articles/34 ...

  6. ubuntu安装node.js+express+mongodb

    输入以下命令安装: sudo apt-get install nodejs 安装完成后,终端输入nodejs,就能进入node命令啦: 但是正常下应该是输入node进入命令而不是nodejs: 在Ub ...

  7. ubuntu 安装node.js + express + mongodb

    转载自http://my.oschina.net/reg/blog/289536 Ctrl + Alt + T,打开终端,输入以下命令安装: sudo apt-get install nodejs 安 ...

  8. Node.js + Express + Mongodb 开发搭建个人网站(二)

    二.路由 1.打开 routes/index.js ,这个意思就是  捕获到访问主页的get请求: 并通过 app.js 分配到对应的路由里: 看到这里,打开 http://127.0.0.1:300 ...

  9. Node.js + Express + Mongodb 开发搭建个人网站(一)

    一.Node + Express环境搭建 0.去Node官网下载安装node,如果安装了 npm 和 node的话 那么就 安装 全局的 express,-g全局安装 npm install expr ...

  10. Node.js + Express + Mongodb 开发搭建个人网站(三)

    三.后台架构 1.在根目录下(和 views 文件夹同级)创建 lib 文件夹 以后所有后端内容 都是在这里写,分别创建三个文件夹 到 lib 目录下: mongo  放的是数据的存储 module  ...

随机推荐

  1. 记sql server 2008R2 两台服务器 使用非默认端口的发布订阅

    最近研究数据库的复制.因为要在两台服务器上,当使用数据库的默认1433端口时,订阅发布没有任何问题,考虑到数据库的安全性问题,需要改用其他端口.这里以10010为例. 有A.B两台服务器:A作为发布服 ...

  2. java身份证验证

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  3. laravel 生成验证码的方法

    在Laravel中有很多图片验证码的库可以使用,本篇介绍其中之一:gregwar/captcha,这个库比较简单,在Laravel中比较常用.下面我们就来介绍下使用细节: 首先, composer.j ...

  4. Hbuilder开发HTML5 APP之向导页制作

    研究了下,向导页的制作还是比较简单的,主要使用的是mui控件中的”图片轮播“组件,组件的标签写法手册中有,中间发现个有趣的东西,如果要作全屏,可以加个样式mui-fullscreen 滑动图片时会自动 ...

  5. SQL Server 2016五大优势挖掘企业用户数据价值

    SQL Server 2016五大优势挖掘企业用户数据价值 转载自:http://soft.zdnet.com.cn/software_zone/2016/0318/3074442.shtml 3月1 ...

  6. IIS 8:IIS 入门

    深埋在您的 Microsoft 服务器 (2008年. 2008 R2 和 2012年的版本) 的范围内是最强大的 Web 服务器可用. 它只等待你来发挥其全部潜力. 您的目标是要从家里运行一个 Wo ...

  7. TaintDroid剖析之File & Memiry & Socket级污点传播

    TaintDroid剖析之File & Memiry & Socket级污点传播 作者:简行.走位@阿里聚安全 1.涉及到的代码文件 TaintDroid在File, Memory以及 ...

  8. Android5.1.1源码 - zygote fork出的子进程如何权限降级

    前言 所有Android应用进程都是zygote fork出来的,新fork出来的应用进程还保持着root权限,这显然是不被允许的,所以这个fork出来的子进程的权限需要被降级,本文说的就是Andro ...

  9. Meteor+AngularJS:超快速Web开发

        为了更好地描述Meteor和AngularJS为什么值得一谈,我先从个人角度来回顾一下这三年来WEB开发的变化:     三年前,我已经开始尝试前后端分离,后端使用php的轻量业务逻辑框架.但 ...

  10. oc集合

    本人之前学习过一年半ios开发 由于行情太过凄惨,故转前端.心在前端,苹果亦难忘!把我平时的笔记作出给大家总结! 回顾之前的知识 便利初始化函数:框架类库中的一些类有一系列的以init开头的方法,这些 ...