node+express运用mysql实现分页操作

需要运用到mysql里面的limit实现分页操作
1.封装mysql为db.js文件

var mysql = require('mysql')
exports.base=(sql,data,callback)=>{
    var mysql= require('mysql');
    var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : '1234',
    database : 'mall',
    post:3306
    });
    
    connection.connect();
    connection.query(sql,data, function (error, results, fields) {
    if (error) throw error;
        callback(results)
    });
    
    connection.end();
}

2.index.js代码

let express=require('express');
let template=require('art-template');
let app=express();
let path=require('path');

// 引入封装好的数据库操作
let db=require('./service/db');

// 静态资源路径
app.use(express.static(path.join(__dirname,'public')));

// 设置模板路径
app.set('views',path.join(__dirname,'views'));
// 设置模版引擎
app.set('view engine','html');
// express-art-template
app.engine('html',require('express-art-template'));

// 路由
app.get('/',(req,res)=>{
    // 获取get后面的page参数值; 没有page的参数值的时候,给它默认值0
    let page=(req.query.page==undefined)?0:req.query.page;
    let startPage=page*5;

    // 从数据库获取数据,然后渲染到show页面
    let count='select count(*) as count from student';
    let sql=`select id,name,if(sex=1,'男','女') as sex,tel,school,major from student limit ${startPage},5`;

    db.base(count,null,(result)=>{
        let countNum=result[0].count;
        db.base(sql,null,(result)=>{
            res.render('show',{list:result,count:countNum,page:page});
        })
    })
})
// 监听端口
app.listen(8080,()=>console.log('runnning'));

3.index.html代码


    
        {{each list}}
        
        {{/each}}
    
编号 姓名 性别 电话 学校 专业
{{$value.id}} {{$value.name}} {{$value.sex}} {{$value.tel}} {{$value.school}} {{$value.major}}
上一页 下一页

实现后结果如下:
在这里插入图片描述

你可能感兴趣的:(express,nodejs,前端javascript,mysql,前端,node.js,javascript)