关键代码
const queryString = 'SELECT * FROM sys_user LIMIT ?, ?'; let data = await query(queryString, [startIndex,pageSize]);
访问数据库相关代码
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
一个分页查询人员信息的完整代码,查询语句实现了防止sql注入
router.get('/api/user/page', async (req, res) => { let pageNo = req.query.pageNo; let pageSize = sysUtils.strToInt(req.query.pageSize); const startIndex = sysUtils.strToInt((pageNo - 1) * pageSize); const queryString = 'SELECT * FROM sys_user LIMIT ?, ?'; let data = await query(queryString, [startIndex,pageSize]); const countSql = 'select count(*) count from sys_user' let countData = await query(countSql); let count = sysUtils.strToInt(countData[0].count); let pageData = { total : count, pages : sysUtils.pageCount(count,pageSize), records : data } res.send({ status: 200, success : true, message: '', data: pageData, }) })