【node.js+MySQL】进行增删查改

312 阅读2分钟

「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」。

最基本的增删查改示例

Node.js 封装一个链接数据库的文件

安装 mysql 模块:

$ npm install mysql 或 yarn add mysql

SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。

数据库操作封装:db.js

let mysql = require('mysql');

// 创建 mysql 连接池资源

let pool = mysql.createPool({

    host     : '服务器IP',

    user     : 'root',

    password : '数据库密码',

    database : '数据库名称'

});

exports.query = //promise化mysql查询语句,优化代码可阅读性

function (sql, sqldata) {

    return new Promise(function (resolve, reject) {

        pool.getConnection(function (err, connection) {

            connection.query(sql, sqldata, function (err, result) {

                if (err) {

                    console.log(err);

                    reject('sql查询错误了');

                } else {

                    resolve(result)

                }

                connection.release();

                //连接不再使用,返回到连接池

            })

        })

    })

}

express服务下的增删查改

注意事项

  • 以问号?进行占位传递参数,可防止SQL注入攻击;
  • node.js操作MySQL进行增删查改本质上就是通过MySQL模块链接上数据库,执行的SQL语句
  • SQL菜鸟教程:www.runoob.com/sql/sql-tut…

引入刚刚我们封装的db.js

const db = require("../db")

新增操作

  async getUserlist(req, res) {

    try {
        let { name, password } = req.body;

      let sql = `insert into adminer values (?,?,?)`;
    // 0表示ID字段;自增
      let result = await db.query(sql,[0, name, password ]);

      res.json({

        code: 0,

        msg: "新增数据成功",

      });

    } catch (error) {

      console.log(error);

    }

查询操作

  async getUserlist(req, res) {

    try {

      let sql = `select * from adminer`;

      let result = await db.query(sql);

      res.json({

        code: 0,

        msg: "查询数据成功",

      });

    } catch (error) {

      console.log(error);

    }

修改操作

根据post请求中的参数ID进行数据库修改操作

 async edit_user(req, res) {

    try {

      let { id, name, password } = req.body;

      let sql = `update adminer set name=?, password=? where id = ?`;

      let result = await db.query(sql,[name,password,id]);

      res.json({

        code: 0,

        msg: "修改成功"

      });

    } catch (error) {

      console.log(error);

    }

  }

删除操作

 async del_user(req, res) {

    try {

      let {  id } = req.query;

      let sql = `delete from adminer where id = ?`;

      let result = await db.query(sql,[id]);

      res.json({

        code: 0,

        msg: "删除成功"

      });

    } catch (error) {

      console.log(error);

    }

  }