根据记录数总数和分页数获到页总数
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 ) {// 返回一个 Promisereturn 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
调试: