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

这篇具有很好参考价值的文章主要介绍了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注入文章来源地址https://www.toymoban.com/news/detail-794208.html

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

到了这里,关于Node.js + Mysql 防止sql注入的写法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Node.js: express + MySQL + Vue实现图片上传

            前段时间用Node.js: express + MySQL + Vue + element组件做了一个小项目,记录一下图片上传的实现。         将图片存入数据库有两种方法:                 1,将图片以二进制流的方式存入数据库(数据库搬家容易,比较安全,但数据库空间的消耗大,访问会比较缓慢)

    2024年02月07日
    浏览(85)
  • MySQL 安全及防止 SQL 注入攻击

    如果通过网页获取用户输入的数据并将其插入  MySQL  数据库,那么就有可能发生  SQL 注入攻击的安全问题 作为研发,有一条铁律需要记住,那就是 永远不要相信用户的数据,哪怕他一再承诺是安全的 SQL  注入,就是通过把  SQL  命令插入到  Web  表单递交或输入域名或页

    2024年02月02日
    浏览(48)
  • Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入

    要从MySQL中的表格中选择数据,请使用\\\"SELECT\\\"语句: 示例选择\\\"customers\\\"表格中的所有记录,并显示结果: 注意 :我们使用 fetchall() 方法,该方法从上次执行的语句中获取所有行。 要仅选择表格中的某些列,请使用\\\"SELECT\\\"语句,后跟列名: 示例仅选择name和address列: 如果您只对

    2024年02月05日
    浏览(71)
  • 【Node.js实战】一文带你开发博客项目之安全(sql注入、xss攻击、md5加密算法)

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,也会涉及到服务端 📃 个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀 未来打算: 为中国的工业软件事业效力n年 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2Vue3项目实战 🥝

    2024年02月03日
    浏览(35)
  • 09-Node.js—express框架

    express 是一个基于 Node.js 平台的极简、灵活的 WEB应用开发框架,官方网址:https://www.expressjs.com.cn/ 简单来说,express 是一个封装好的工具包,封装了很多功能,便于我们开发 WEB 应用(HTTP 服务) 大家都应该玩过我的世界,在我的世界中如果纯靠手去砍树或者挖矿,效率是很低

    2023年04月26日
    浏览(37)
  • node.js中Express简介

    1.什么是Express 官方给出的概念:Express是基于Node.js平台,快速、开放、极简的web开发框架。 通俗理解:Express的作用和Node.js内置的http模块类似,是 专门用来创建web服务器的 Express的本质:就是一个npm上的第三方包,提供了快速创建Web服务器的便捷方法 2.进一步理解Express htt

    2024年02月08日
    浏览(45)
  • “Node.js:操作mysql数据库“

    Node.js中操作mysql数据库 ​ mysql模块 是托管于npm的第三方模块,它提供了Node.js项目中 连接 和 操作mysql数据库 的能力。 在项目中操作数据库的步骤 (1).安装mysql数据库的第三方模块(mysql) (2).通过mysql模块连接到mysql数据库 (3).通过mysql模块执行sql语句 1.操作mysql数据库 db.query() 用来

    2024年02月05日
    浏览(30)
  • Node.js 连接 mysql 数据库

    目录 一、安装驱动 二、连接数据库 1、数据库连接的配置信息 数据库连接参数说明 2、封装 mysql 的执行语句 3、后端路由文件  三、数据库操作( CURD ) 1、查询数据 2、插入数据 3、更新数据 4、删除数据 4、获取受影响的行数 5、获取更改的行数 6、多语句查询 7、事务 四、E

    2024年02月07日
    浏览(48)
  • Node.js之express框架学习心得

    Node.js是基于Chrome V8引擎构建的JavaScript运行时,它采用了完全不同的开发模型。Node.js使用事件驱动和非阻塞I/O的方式处理请求,通过单线程和异步机制,实现高效的并发处理。这意味着在Node.js中,一个线程可以处理数千个并发连接,大大提高了服务器的性能和可伸缩性。 4

    2024年02月14日
    浏览(48)
  • Node.js写接口连接MySQL数据库

    1.新建app.js粘贴以下代码 2.npm init 初始化 3.npm i 安装依赖 4.npm i mysql 5.npm i express 6. node app.js 启动接口

    2024年02月15日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包