一,建立两个模板:db.js (获取数据库的数据)  message.js(将得到的数据进行分页,显示)

db.js

/*** 创建数据库连接,并获取数据*/
var mysql = require('mysql');
//获取用户名,连接地址,密码,数据库名
function Db(host,user,pwd,port,database){this.host = host;this.user = user;this.pwd = pwd;this.port = port;this.database = database;
}
//获取数据
Db.prototype.excuteQuery = function(sql,connection,fun){connection.query(sql, function (error, rows) {var result="";if (error) {result = {"status": "500","message": "服务器错误"}}else{result = {"status": "200","message": "success","data":rows}}fun(result);});
}
//建立连接
Db.prototype.getConnection = function(){var connection = mysql.createConnection({host: this.host,user: this.user,password:this.pwd,port: this.port,database: this.database});connection.connect();return  connection;
}
module.exports=Db;

message.js

/*数据分页*/
var Db=require('./db.js');
//创建一个新的数据库方法对象
var db=new Db('localhost','db','17437215','3306','test');
var obj=null;
function Message(express) {//创建路由this.router = express.Router();this.execute();
}//此函数检查该表中的数据条数
Message.prototype.count = function(sql,fun){var cSql  = "select count(*) from ("+sql+")";//通过对象调用函数创建连接var con=db.getConnection();//调用函数接收数据db.excuteQuery(cSql,con,function(data){fun(parseInt(data));})
}//此函数通过linmit方法获取表中需要的数据
Message.prototype.limtModel = function(sql,start,pageSize,fun){//返回从start行开始,到pageSize中的数据var limitSql="select * from ("+sql+")aa limit "+start+","+pageSize;console.log(limitSql);var con=db.getConnection();db.excuteQuery(limitSql,con,function(data){fun(data.data)})
}
Message.prototype.execute = function(){var obj=this;//创建路由路径this.router.get("/message?",function(req,res){//初始从第几页开始var currentPage = 2;//每页显示的数据条数var pageSize = 5;var sql="select * from t_message where 1=1 order by s_date desc";//返回url中属性使currPafe的参数var cP=req.query.currPage;if(cP!=null&&(typeof cP)!=undefined){currentPage=cP;}obj.count(sql,function(count){//最大页数var maxPage=(count+pageSize-1)/pageSize;//如果此页大于最大页数,则吧最大页数赋给此页if(currentPage>maxPage){currentPage = maxPage;}//此页小于1则将此页置为一,从第一页开始显示if(currentPage<1){currentPage = 1;}/** 第一个参数:sql:需要分页的数据* 第二个参数:通过当前的页数,和每页需要显示的数据条数,得出这一页数据开始是哪一条数据* 第三个参数:获得确定这页数据的最后一条数据是那一条数据* */var addr=req.protocol+"://"+ req.hostname+":3001/";obj.limtModel(sql,(currentPage-1)*pageSize,pageSize,function(data){res.render("qh/message",{args:data,cp:currentPage,addr:addr,last:maxPage});});})})
}module.exports=Message;

二,创建路由

app3.js

var express = require('express');
var fs= require('fs');
var url = require('url');
var app = express();
app.set('view engine', 'ejs');
app.set('views', __dirname + '/views');
app.use(express.static( __dirname+"/public"));//指向模板
var Message=require('./action/message.js');
app.use("/",new Message(express).router);app.listen(3001,function afterListen(){console.log("express running ....");
});

三,在页面接收数据

<div class="mailbox mt20"><%args.forEach(function(row) {%><div class="online-content clearfix"><div class="icon fl"><img src="../images/online.png" alt=""></div><div class="question fr"><p>留言主题:<%=row.title%> </p><p class="name"><span>网友:<%=row.name%></span><span><%=row.s_date%></span><span><a target="_blank" href="#">我要留言</a></span></p><div class="message-i "><p><strong>留言详情:</strong><%=row.s_des%></p></div><div class="answer"><p><strong>执法监察总队回复:</strong><%=row.l_des%></p></div></div></div><%})%><div class="page"><%cp=parseInt(cp);%><ul><li class="num"><a href=<%=addr%>message?cp=1>首页</a></li><li class="num"><a href=<%=addr%>message?cp=<%=cp-1%>>上一页</a></li><li class="num page-active">1</li><li class="num" >2</li><li class="num" >3</li><li class="num" >4</li><li class="num">5</li><li class="page-speciall">...</li><li class="num">34</li><li class="num"><a href=<%=addr%>message?cp=<%=cp+1%>>下一页</a></li><li class="num"><a href=<%=addr%>message?cp=<%=last%>>尾页</a></li></ul></div></div>

转载于:https://www.cnblogs.com/dybe/p/8143628.html

js:nodejs搭建http服务器为页面添加mysql中的数据分页相关推荐

  1. js:使用nodejs为页面传递mysql中的数据

    一,使用express模块创建服务器 1.安装express:命令  1. npm -g install express  2.npm  install express 安装ejs视图模板:npm – ...

  2. websocket 学习--简单使用,nodejs搭建websocket服务器,到模拟股票,到实现聊天室

    websocket简介: WebSocket协议是 HTML5 开始提供的一种基于TCP的一种新的全双工通讯的网络通讯协议.它允许服务器主动发送信息给客户端. 和http协议的不同?? HTTP 协议 ...

  3. 通过nodejs搭建HTTP服务器

    文章目录 通过nodejs搭建HTTP服务器 前提 搭建步骤 实例 启动服务器 通过nodejs搭建HTTP服务器 nodejs是一个用于解析执行javaScript代码的环境(它不是语言,不是框架) ...

  4. wss2016 作文件服务器,Nodejs搭建wss服务器教程

    本文为大家分享了Nodejs搭建wss服务器的教程,供大家参考,具体内容如下 首先使用OpenSSL创建自签名证书: #生成私钥key文件 openssl genrsa 1024 > /path ...

  5. node.js 微信小程序 部署服务器_微信小程序开发入门(一),Nodejs搭建本地服务器...

    1.  如何模拟真实环境中,读取服务端数据,首先需要使用Nodejs搭建一个本地服务器的环境. 在搭建web服务器之前,需要先安装node.js(安装版本最好为6.9.x) 安装后node.js,接下 ...

  6. 用nodejs搭建web服务器

    转自:微点阅读 https://www.weidianyuedu.com Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动. ...

  7. Nodejs搭建web服务器

    使用Nodejs + http 创建web服务器 1.首先创建一个server.js文件,创建服务器,以及对应css和js文件的引入和判断 var http=require('http'); var ...

  8. node制作http服务器,NodeJS 搭建 HTTP 服务器

    前言 在 NodeJS 中用来创建服务的模块是 http 核心模块,本篇就来介绍关于使用 http 模块搭建 HTTP 服务器和客户端的方法,以及模块的基本 API. HTTP 服务器 1.创建 HT ...

  9. Nodejs 搭建https服务器(二)

    3. Node搭建https服务器 3.1 配置express项目 $ cd /Users/51testing/Desktop/https $ express HttpsService ....    ...

最新文章

  1. webpack源码之tapable
  2. XNA游戏:软键盘弹窗输入
  3. 绿盟科技网络安全威胁周报2017.17 请关注Squirrelmail 远程代码执行漏洞CVE-2017-7692...
  4. 从文本分类来看图卷积神经网络
  5. 4x4矩阵键盘工作原理及扫描程序_AVR单片机扫描4X4矩阵键盘并数码管显示程序
  6. 使用 ApplicationLoader 上传应用到 Appstore
  7. 服务器开发中网络数据分析与故障排查经验
  8. 基于Office 365的随需应变业务应用平台
  9. 工业交换机和商用交换机对比
  10. 联想m7400pro清零方法_联想打印机怎么清零 联想打印机清零方法【教程】
  11. ffmpeg实现摄像头拉流_干货 | 速看!乐橙K32Famp;K36F摄像头全彩夜视功能的不同点全在这了!...
  12. 60-270-040-源码-指标监测-Flink自定义metric监控流入量
  13. 雷林鹏分享:Lua break 语句
  14. Python-Matplotlib可视化(6)——自定义坐标轴让统计图清晰易懂
  15. 【转】《从入门到精通云服务器》第三讲-配置与升级云服务器
  16. Xshell使用方法
  17. 如何改变win10鼠标样式
  18. 面试自我介绍的模板总结
  19. 【转】用万兆网卡测试超五类网线传输速度,颠覆你的认知
  20. 时空数据生成对抗网络研究综述(下)

热门文章

  1. Flink问题记录:A raw type backed by type information has no serializable string representation. It ....
  2. Deep learning for arts——王乃岩(图森科技)
  3. 一台计算机英语美式发音,美式英语发音课程(视频+文本) 第69期:Want和Won't的发音对比...
  4. 美式口语发音技巧:《英美发音区别》
  5. android手机改电视,DIY让手机变成万能电视遥控器 手机万能遥控器设置方法
  6. 计算机桌面文件如何发送给qq好友,QQ怎么与好友分享屏幕 如何共享电脑屏幕给好友...
  7. 小米手机显示崩溃日志
  8. R 两组样本t检验 wilcoxon检验、卡方、fisher精确检验
  9. threw exception [Circular view path [index]: would dispatch back to the current handler URL [/index]
  10. Consul注册中心注册的服务总是红叉 (All service checks failing)