node.js 封装分页查询

node.js封装sql分页查询

方法:

javascript 复制代码
/**
 * 生成分页查询sql
 * @param {string} table 表名
 * @param {number} pageNum 分页页数 
 * @param {number} pageSize 分页条数 
 * @param {object} query 查询对象 例:{id:1,name:'小明'}
 * @returns sql语句
 */
const limit = (table, pageNum, pageSize, query) => {
    let sql = `WHERE `
    let keyList = Object.keys(query) // 提取查询对象中的key为数组
    //查询对象全为空则结束函数
    if (!keyList.some(e => query[e])) { //如果查询对象中得value都为空的话查询条件为空
        sql = ''
    } else {
        //生成SQL语句
        keyList.forEach((e, index) => {
            //判断下一个分页条件是否为空,如果不为空则拼接AND
            let context = query[keyList[index + 1]] ? ' AND ' : '' 
            //value不为空时,拼接筛选条件
            if (query[e]) {
                sql += `${e} like '%${query[e]}%'${context} ` //拼接sql
            }
        })
    }
    return `SELECT * FROM ${table} ${sql}LIMIT ${(pageNum - 1) * 10},${pageSize}`
}
module.exports = limit

使用:

javascript 复制代码
  let {
        pageSize, // 条数
        pageNum,  // 页数
        sb_Name   // 穿过来的对象
    } = req.query //req:请求对象 query:get请求携带对象
    const selectData = {
        sb_Name   // 需要筛选的对象
    }
    let sqlString = limit('tableName', pageNum, pageSize, selectData)
   // sqlString =  SELECT * FROM u8_table  LIMIT 0,10 sqlString
相关推荐
人工智能训练师6 小时前
Ubuntu22.04如何安装新版本的Node.js和npm
linux·运维·前端·人工智能·ubuntu·npm·node.js
Seveny076 小时前
pnpm相对于npm,yarn的优势
前端·npm·node.js
huangql52011 小时前
npm 发布流程——从创建组件到发布到 npm 仓库
前端·npm·node.js
荣达13 小时前
koa洋葱模型理解
前端·后端·node.js
csdn_aspnet14 小时前
Windows Node.js 安装及环境配置详细教程
windows·node.js
风若飞1 天前
npm ERR! code CERT_HAS_EXPIRED
前端·npm·node.js
csdn_aspnet1 天前
Windows、Linux 系统 nodejs 和 npm 版本更新及错误修复
linux·windows·npm·node.js
北城笑笑1 天前
NodeJS 8 ,从 0 到 1:npm 包发布与更新全流程指南( 含多场景适配与踩坑总结 )
前端·npm·node.js·github
码码哈哈0.01 天前
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚
前端·npm·node.js
歪歪1001 天前
webpack 配置文件中 mode 有哪些模式?
开发语言·前端·javascript·webpack·前端框架·node.js