Node.js+Express+Mysql实现分页查询
2024-01-08 09:29:46
根据记录数总数和分页数获到页总数
function pageCount (totalnum,limit){
return totalnum > 0 ? ((totalnum < limit) ? 1 : ((totalnum % limit) ? (parseInt(totalnum / limit) + 1) : (totalnum / limit))) : 0;
}
接收请求代码
router.get('/api/user/page', async (req, res) => {
let pageNo = req.query.pageNo;
let pageSize = req.query.pageSize;
const startIndex = (pageNo - 1) * pageSize;
const queryString = `SELECT * FROM sys_user LIMIT ${startIndex}, ${pageSize}`;
let data = await query(queryString);
const countSql = 'select count(*) count from sys_user'
let countData = await query(countSql);
let count = countData[0].count;
let pageData = {
total : count,
pages : sysUtils.pageCount(count,pageSize),
records : data
}
res.send({
status: 200,
success : true,
message: '',
data: pageData,
})
})
数据库代码
const mysql = require('mysql')
const pool = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: '123456',
database: 'lzwj_data',
port: 3306
})
function camelCaseKeys(obj) {
const result = {};
for (let key in obj) {
let newKey = key[0].toLowerCase() + key.slice(1).replace(/_([a-z])/g, function($0,$1){return $1.toUpperCase();});
result[newKey] = obj[key];
}
return result;
}
let query = function( sql, values ) {
// 返回一个 Promise
return new Promise(( resolve, reject ) => {
pool.getConnection(function(err, connection) {
if (err) {
reject( err )
} else {
connection.query(sql, values, ( err, rows) => {
if ( err ) {
reject( err )
} else {
rows = rows.map(item => camelCaseKeys(item));
resolve( rows )
}
// 结束会话
connection.release()
})
}
})
})
}
module.exports = query
调试:
文章来源:https://blog.csdn.net/gdgztt/article/details/135400066
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!