使用 MySQL模块增、 删、 查、 改数据

本文档展示了如何使用Express框架和MySQL数据库在Node.js环境中搭建一个Web服务器,包括安装Express和MySQL模块,创建基本的Web服务器,配置数据库连接,以及执行增删查改(CRUD)操作。通过示例代码详细解释了查询、插入、更新和删除用户数据的方法,并讨论了标记删除的概念,以避免直接删除数据。
摘要由CSDN通过智能技术生成

1.安装express

在项目所处的目录中,运行如下的终端命令,即可将 express 安装到项目中使用:
npm i express@4.17.1

2.创建基本的 Web 服务器

// 导入express
const express = require('express');
// 创建web服务器
const app = express();

//todo:利用mysql模块进行数据的增 删 查 改 代码


// 调用app.listen(端口号,启动成功后的回调函数),启动服务器
app.listen(80, () => {
    console.log('http://127.0.0.1');
});

3.安装操作 MySQL 数据库的第三方模块(mysql

mysql 模块是托管于 npm 上的 第三方模块 。它提供了在 Node.js 项目中 连接 操作 MySQL 数据库的能力。
想要在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包:
 
npm i mysql

4.配置 mysql 模块

在使用 mysql 模块操作 MySQL 数据库之前, 必须先对 mysql 模块进行必要的配置 ,主要的配置步骤如下:
//导入mysql
const mysql = require('mysql');
//链接数据库
const conn = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'web66',
});

5.查询 users 表中所有的数据:

app.get('/getUser', (req, res) => {
    //创建sql语句  查询users表中所有的用户信息
    const sqlStr1 = 'select * from users';
    //执行sql语句 
    conn.query(sqlStr1, (err, result) => {
        // 如果连接失败或者sql语句写错
        if (err) return console.log('获取数据失败' + err.message);
       // 如果获取数据成功,向客户端响应数据
        res.send({
            status: 0,
            msg: '获取数据成功',
            data: result
        });
    });

});

6.向 users 表中新增数据:

app.post('/addUser', (req, res) => {
    // 获取客户端提交过来的数据
    const data = req.body;
    // 构建sql语句  其中英文的 ? 表示占位符
    const sql = 'insert into users set ?';
    // 执行sql
    conn.query(sql, data, (err, result) => {
        // 判断sql是否执行失败
        if (err) return console.log(err.message);
        // 判断受影响的行数(affectedRows) 看其值是不是1,如果不是1表示失败 如果是1成功
        if (result.affectedRows !== 1) return console.log('数据写入失败');
        // 如果写入成功 向客户端响应数据
        res.send({
            status: 0,
            msg: '数据写入成功'
        });
    });
});

7.更新users表中的数据:

app.post('/updateUser', (req, res) => {
    const body = req.body;
    const sql = 'update users set ? where id=?';
    // 调用conn.query()执行SQL语句中有多个占位符,则必须使用数组为每个占位符指定具体的值
    //如果SQL语句中只有一个占位符,则可以省略数组
    conn.query(sql, [body, body.id], (err, result) => {
        if (err) return console.log(err.message);
        if (result.affectedRows !== 1) return console.log('数据更新失败');
        res.send({
            status: 0,
            msg: '数据更新成功'
        });
    });
});

8.删除数据,推荐根据 id 这样的唯一标识,来删除对应的数据:

app.get('/deleteUser/:id', (req, res) => {
    const id = req.params.id;
    const sql = 'delete from users where id=?';
    conn.query(sql, id, (err, result) => {
        if (err) return console.log(err.message);
        if (result.affectedRows !== 1) return console.log('数据删除失败');
        res.send({
            status: 0,
            msg: '数据删除成功'
        });
    });
});

9.标记删除:

使用 DELETE 语句,会把真正的把数据从表中删除掉。为了保险起见, 推荐使用 标记删除 的形式,来 模拟删除的动作
所谓的标记删除,就是在表中设置类似于 status 这样的 状态字段 ,来 标记 当前这条数据是否被删除。
当用户执行了删除的动作时,我们并没有执行 DELETE 语句把数据删除掉,而是执行了 UPDATE 语句,将这条数据对应 的 status 字段标记为删除即可。
app.get('/deleteUser/:id', (req, res) => {
    const id = req.params.id;
    const sql = 'update users set status=0 where id=?';
    conn.query(sql, id, (err, result) => {
        if (err) return console.log(err.message);
        if (result.affectedRows !== 1) return console.log('数据删除失败');
        res.send({
            status: 0,
            msg: '数据删除成功'
        })
    })
})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值