js:nodejs搭建http服务器为页面添加mysql中的数据

一,建立两个模板: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‘,‘dyb‘,‘1743721550‘,‘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

时间: 2024-10-05 20:38:32

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

使用Nodejs搭建Web服务器

使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为实现Web服务器需要用到Nodejs中几个比较重要的模块:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向技术等,下面我们就一起来学习如何搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容 3.显示图片资源 4.自动下载以.apk/.docx/.zip结尾

微信小程序开发入门(一),Nodejs搭建本地服务器

1.  如何模拟真实环境中,读取服务端数据,首先需要使用Nodejs搭建一个本地服务器的环境. 在搭建web服务器之前,需要先安装node.js(安装版本最好为6.9.x) 安装后node.js,接下来就需要安装http的镜像文件 npm install http-server -g(windows下)sudo npm install http-server -g(linux和mac下)接下来在桌面创建一个文件夹 cd 文件夹名字http-server这时候,就会显示在8080端口下运行的一个本

Nodejs搭建web服务器实现简单的登陆

本服务器采用了node-koa(2.0):koa是Express下的一个web框架. 搭建步骤: 1.首先我们创建一个web-koa目录,在目录下创建app.js,package.json,start.js三个文件. 2.然后我们来编辑最基本的package.json文件,如下: $ npm init { "name": "myapp", "version": "1.0.0", "description":

Nginx+Nodejs搭建图片服务器

图片上传请求由Node处理,图片访问请求由Nginx处理. 1.Nginx配置 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types;

巨杉Tech | 使用 SequoiaDB + Docker + Nodejs 搭建 Web 服务器

容器化技术的出现大大简化了应用开发人员在构建底层基础设施的工作.SequoiaDB 巨杉数据库于3.2.1版本正式推出了 Docker 容器化部署方案,本文将会基于 SequoiaDB 巨杉数据库与Nodejs的 Docker 镜像搭建一个简易的 Web 服务器. 1.规划部署我们将会搭建一个三分区三副本的高可用 SequoiaDB 巨杉数据库.同时,我们将会创建一个 SequoiaDB 巨杉数据库的 MySQL 实例,用以提供 Nodejs 作为数据源. 容器角色 容器名/IP:端口 分区组

centos 7下nginx搭建流媒体服务器【动态添加模块】

1.安装nginx依赖包 yum install gcc gcc-c++ openssl-devel zlib-devel pcre pcre-devel yamdi 2.下载解压nginx_mod_h264_streaming,让nginx支持flv,mp4流播放 wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz 解压后需要修改src目录下的ngx_http_streaming_modul

怎样用Nodejs搭建一个服务器

首先我们要知道nodejs有哪些内置模块,比如,http,fs,url,这三是必须要用的. http:超文本传输协议,fs:filesystem,文件系统,有了这个模块,我们就可以操作文件了,url就不用说了吧,来吧,开始吧 先用requirejs,引入模块 var http = require('http'),url = require('url'),fs = require('fs'); 然后创建一个服务; var server = http.createServer(function(re

nodeJS搭建本地服务器

准备工作: Node JS: 1:安装全局express:在express4.x版本中,安装时语句变为了这样: npm install -g express npm install -g express-generator 2:创建项目: 选择模板:ejs jade Express name -ejs cd name npm install 3:启动项目: Npm start node路由设置 1:添加一条路由步骤:    1:请求路由文件,require    2:配置路由-- app.use

nodejs 搭建简易服务器

www文件夹下 template文件夹下 server.js代码: const express=require('express'); const static=require('express-static'); //托管静态文件 const cookieParser=require('cookie-parser'); //解析cookie const cookieSession=require('cookie-session'); //解析session const bodyParser=r