Node.js、express、mongodb 实现分页查询、条件搜索
前言
在上一篇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 实现分页查询、条件搜索的更多相关文章
- Node.js Express+Mongodb 项目实战
Node.js Express+Mongodb 项目实战 这是一个简单的商品管理系统的小项目,包含的功能还算挺全的,项目涵盖了登录.注册,图片上传以及对商品进行增.删.查.改等操作,对于新手来说是个很 ...
- Node.js+Express+MongoDB数据库实现网页注册登入功能
通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能 项目准备: 1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.h ...
- node.js+express+mongodb
主要是想用node.js链接mongodb,用的是mongoose.用ejs引擎,扩展到.html比较容易 小例子结构简单,框架清晰. 提交方法 路径 方法 作用 get add post a ...
- 【nodejs笔记1】配置webstorm + node.js +express + mongodb开发博客的环境
1. 安装webstorm 并破解 2. 安装node (以及express框架) 至官网下载并安装.(http://nodejs.org)v0.10.32 msi 安装后测试,打开命令行, c ...
- Node.js +Express+MongoDB+mogoose+ejs+bootstrap+jquery
Node.js + MongoDB 项目实战(二) 创建项目 在项目实战(一)中,已经配置好了开发环境(详见:http://www.cnblogs.com/jameslong/articles/34 ...
- ubuntu安装node.js+express+mongodb
输入以下命令安装: sudo apt-get install nodejs 安装完成后,终端输入nodejs,就能进入node命令啦: 但是正常下应该是输入node进入命令而不是nodejs: 在Ub ...
- ubuntu 安装node.js + express + mongodb
转载自http://my.oschina.net/reg/blog/289536 Ctrl + Alt + T,打开终端,输入以下命令安装: sudo apt-get install nodejs 安 ...
- Node.js + Express + Mongodb 开发搭建个人网站(二)
二.路由 1.打开 routes/index.js ,这个意思就是 捕获到访问主页的get请求: 并通过 app.js 分配到对应的路由里: 看到这里,打开 http://127.0.0.1:300 ...
- Node.js + Express + Mongodb 开发搭建个人网站(一)
一.Node + Express环境搭建 0.去Node官网下载安装node,如果安装了 npm 和 node的话 那么就 安装 全局的 express,-g全局安装 npm install expr ...
- Node.js + Express + Mongodb 开发搭建个人网站(三)
三.后台架构 1.在根目录下(和 views 文件夹同级)创建 lib 文件夹 以后所有后端内容 都是在这里写,分别创建三个文件夹 到 lib 目录下: mongo 放的是数据的存储 module ...
随机推荐
- PHP DOS漏洞的新利用:CVE-2015-4024 Reviewed
1. 背景介绍 今天我们想从2015.04.03的一个PHP远程dos漏洞(CVE-2015-4024)说起.技术细节见如下链接,https://bugs.php.net/bug.php?id ...
- Map Network Driver
K: \\10.11.80.5\deptfiling-pubgz$ O: \\10.11.80.5\deptfiling-itdgz$
- asp.net 使用DroDownList来实现二级联动
今天做新闻发布系统的时候,用到了二级联动,我把使用方法记录下来,以便日后查阅以及帮助新手朋友们.下面是效果图: 下面来讲解一下实现的方法: 1.在.aspx页面中,拖入两个DroDownList控件. ...
- 设计一个用于人事管理的People(人员)类
#include <iostream> #include <string> using namespace std; class Date //日期类 { private: i ...
- 火狐下white-space: nowrap对float的影响
- 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)
Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...
- HaProxy+Keepalived+Mycat高可用群集配置
概述 本章节主要介绍配置HaProxy+Keepalived高可用群集,Mycat的配置就不在这里做介绍,可以参考我前面写的几篇关于Mycat的文章. 部署图: 配置 HaProxy安装 181和1 ...
- Distributed MVCC based cross-row transaction
The algorithm for supporting distributed MVCC based cross-row transactions on top of a distributed k ...
- 固定Table的头部和左边的列-在Knockout Js使用场景下
要求:固定Table的头部和左边的列 场景:Knockout Js被用于绑定Table的数据源. 固定HTML表格的头部和列是一个很常见的需求.此文:http://www.cnblogs.com/so ...
- Oracle 中 union 和union all 的简单使用说明
1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...