node连接mysql数据库,封装增删改查

最近写了一下node,用nodejs和vue写了一个很简易的评分管理系统,总计一下在node连接mysql

首先,我们需要安装一下mysql的模块,在你服务器工作目录下执行命令

npm install mysql --save

在js中引入该模块,配置一下端口号,密码什么的

const mysql = require("mysql");
var connection = mysql.createPool({
   host: "localhost",
   user: "root",
   password: "123456",
   database: "nodetest"
}) //数据库连接配置

接下来来一个简单的测试,我用的是express框架

app.get('/', function (req, res, next) {
  connection.getConnection(function(err,conn){
    if(err){
      return;
    }
    else{
      conn.query("select * from team",function(err,result){
        return res.send({
          message:"成功",
          data:result
        })
      })
    }
  })
});

成功拿到数据
在这里插入图片描述
在写的过程中,发现有很多地方需要写重复的语句,所以把增删改查封装一下

const mysql = require("mysql");
class db  {
  constructor(databaseName){
    this.connection = mysql.createPool({
        host:"localhost",
        user:"root",
        password:"123456",
        database:databaseName
    })
    this.common = [
      {
        message: "服务器出现问题",
        status: 500
      },
      {
        message: "无法访问资源",
        status: 404
      },
    ]
  }
  /**
   * 
   * @param {*} name 要查询的字段名称,用(,)隔开
   * 
   * @param {*} tableName 要查询的表名
   * 
   * @param {*} options 选择条件,字符串形式,要写where,如where id = 1
   */
  select(name,tableName,options) {
    let self = this
    return new Promise((resolve, reject) =>{

      self.connection.getConnection(function (err, conn) {  
        if(err){
          console.log(err)
          reject (self.common[0])
        }else{
          let sql = `select ${name.toString()} from ${tableName} ${options}`
          console.log(sql)
          conn.query(sql,function (err, result) {  
            if(err){
              reject (self.common[1])
            }
            conn.release()
            console.log({
              status: 200,
              message:'成功',
              data:result
            })
            resolve({
              status: 200,
              message:'成功',
              data:result
            })
          })
        }
      })
    }).catch(err => err)
  }
  /**
   * 
   * @param {*} tableName 插入的表名
   * 
   * @param {*} name 插入的字段名,多个字段用(,)隔开 
   * 
   * @param {*} value 插入的字段值,多个字段用(,)隔开,字符串类型要加上引号
   */
  insert(tableName,name, value){
    let self = this;
    return new Promise((resolve,reject) => {
      self.connection.getConnection(function(err, conn){
        if(err){
          console.log(err)
          reject(self.common[0])
        }else{
          let sql = `insert into ${tableName} (${name}) values (${value})`
          conn.query(sql,function(err, result){
            if(err){
              console.log(err)
              reject(self.common[1])
            }
            conn.release();
            resolve({
              message:'成功',
              status:200,
              data: result
            })
          })
        }
      })
    }).catch(err =>{
      return err
    })
  }
  /**
   * 
  * @param {*} tableName 修改字段所在的表名
  * 
   * @param {*} name 需要修改的字段名称
   * 
   * @param {*} value 修改的值 
   * 
   * @param {*} option 特殊条件,要带有where
   */
  update(tableName,name,value, option){
    let self = this;
    return new Promise((resolve, reject) => {
      self.connection.getConnection(function(err, conn){
        if(err){
          console.log(err);
          reject (self.common[0])
        }else{
          let sql = `update ${tableName} set ${name} = ${value} ${option}`
          conn.query(sql, function(err, result) {
            if(err){
              console.log(err);
              reject(self.common[1])
            }
            conn.release();
            resolve({
              message:'成功',
              status:'200',
              data:result
            })
          })
        }
      })
    }).catch(err => err)
  }
  /**
   * 
   * @param {*} tableName 删除字段所在的表名
   * 
   * @param {*} option 特殊条件,要带有where
   */
  delete(tableName, option){
    let self  = this
    new Promise((resolve, reject) => {
      self.connection.getConnection(function(err, conn) {
        if(err){
          console.log(err);
          reject(self.common[0])
        }else{
          let sql = `DELETE FROM ${tableName} ${option}`
          conn.query(sql, function(err, result) {
            if(err){
              reject(self.common[1])
            }
            conn.release();
            console.log({
              data:result,
              message:"成功",
              status:200
            })
            resolve({
              data:result,
              message:"成功",
              status:200
            })
          })
        }
      })
    }).catch(err => err)
  }
}
module.exports = db

测试一下能不能正确返回

var express = require('express');
var cors = require("cors");
var app = express();
app.use(cors())
var db =  require("../config/db.js");
const { json } = require('express');
var test = new db("nodetest");
app.get('/', async function (req, res, next) {  
  // let result = await test.select("id,totalScore","team","where id = 1")
  // let result = await test.insert("m_login","name,id","'LLLL',100")
  let result = await test.insert("m_losdsgin","name,id","'LLLL',100")
  // let result = await test.update("m_login","name","'xxx'","where id = 2")
  // let result = await test.delete("m_lowgin", "where id = 100")
  console.log(result)
  res.send(result)
});

在这里插入图片描述
在这里插入图片描述
成功拿到数据

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对于在 Node.js 中使用 MySQL 进行增删改查操作,你可以使用以下步骤: 1. 首先,确保你已经安装了 `mysql` 模块。你可以通过在终端中运行以下命令来安装它: ``` npm install mysql ``` 2. 在你的 Node.js 代码中,引入 `mysql` 模块: ```javascript const mysql = require('mysql'); ``` 3. 创建与数据库连接: ```javascript const connection = mysql.createConnection({ host: '数据库主机名', user: '用户名', password: '密码', database: '数据库名称' }); connection.connect((err) => { if (err) { console.error('数据库连接失败:', err); return; } console.log('数据库连接成功!'); }); ``` 4. 执行 SQL 查询语句: ```javascript const sql = 'SELECT * FROM 表名'; connection.query(sql, (err, results) => { if (err) { console.error('查询失败:', err); return; } console.log('查询结果:', results); }); ``` 5. 执行 SQL 插入、更新或删除语句: ```javascript const insertSql = 'INSERT INTO 表名 (列1, 列2) VALUES (?, ?)'; const insertValues = ['值1', '值2']; connection.query(insertSql, insertValues, (err, result) => { if (err) { console.error('插入失败:', err); return; } console.log('插入成功,插入的行数:', result.affectedRows); }); const updateSql = 'UPDATE 表名 SET 列1 = ? WHERE 列2 = ?'; const updateValues = ['新值', '条件值']; connection.query(updateSql, updateValues, (err, result) => { if (err) { console.error('更新失败:', err); return; } console.log('更新成功,更新的行数:', result.affectedRows); }); const deleteSql = 'DELETE FROM 表名 WHERE 列 = ?'; const deleteValues = ['条件值']; connection.query(deleteSql, deleteValues, (err, result) => { if (err) { console.error('删除失败:', err); return; } console.log('删除成功,删除的行数:', result.affectedRows); }); ``` 6. 最后,记得在完成操作后关闭数据库连接: ```javascript connection.end((err) => { if (err) { console.error('关闭数据库连接失败:', err); return; } console.log('数据库连接已关闭!'); }); ``` 这样,你就可以在 Node.js 中使用 MySQL 进行增删改查操作了。记得将上述代码中的主机名、用户名、密码、数据库名称、表名、列名、条件值等根据你的实际情况进行替换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值