Node.js + Mysql 防止sql注入的写法

关键代码

    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,
    })
})

相关推荐

  1. Node.js + Mysql 防止sql注入写法

    2024-01-06 17:30:04       38 阅读
  2. 写一段防止sql注入sql查询

    2024-01-06 17:30:04       30 阅读
  3. 如何防止SQL注入攻击?

    2024-01-06 17:30:04       18 阅读
  4. PHP中如何防止SQL注入攻击?

    2024-01-06 17:30:04       47 阅读
  5. .Net 全局过滤,防止SQL注入

    2024-01-06 17:30:04       32 阅读
  6. SQL注入攻击和防御

    2024-01-06 17:30:04       42 阅读
  7. SQL注入攻击和防御

    2024-01-06 17:30:04       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 17:30:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 17:30:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 17:30:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 17:30:04       20 阅读

热门阅读

  1. 第一章 随机事件和概率

    2024-01-06 17:30:04       27 阅读
  2. 对象转成json,由于数据量过大压缩成.json.zip格式

    2024-01-06 17:30:04       33 阅读
  3. git 使用场景 本地分支 推送到 远程分支

    2024-01-06 17:30:04       49 阅读
  4. CentOS:安装gitlab

    2024-01-06 17:30:04       41 阅读
  5. 2023.12.31力扣每日一题——一年中的第几天

    2024-01-06 17:30:04       42 阅读
  6. pytest常用的第三方插件介绍

    2024-01-06 17:30:04       35 阅读
  7. 根据具体时间转换为一周前、几小时前格式

    2024-01-06 17:30:04       38 阅读
  8. Redis过期清理策略和内存淘汰机制

    2024-01-06 17:30:04       43 阅读
  9. 华为云服务介绍(二)

    2024-01-06 17:30:04       45 阅读