栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

在项目中操作 MySQL

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在项目中操作 MySQL

  1. 通过 mysql 模块 链接到 MySQL 数据库

  2. 通过 mysql 模块 执行 SQL 语句

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

在终端命令中 安装mysql 模块   将mysql安装为项目依赖包

 npm i mysql

 2.配置mysql 模块 在使用 mysql 模块操作 MySQL 数据库之前, 必须先对 mysql 模块进行必要的配置

 导入mysql 模块

const mysql = require('mysql')

//建立与mysql 数据库的链接

const db = mysql.createPool({

    host: '127.0.0.1',   //数据库的IP 地址

    user: 'root',     //登录数据库的账号

    password: 'root',   //登录数据库的密码

    database: 'web67'    //指定要操作哪个数据库

})

3.在所在文件夹终端 安装express模块

npm i express

 4.创建服务器

//导入 express

const express = require('express')

//创建服务器

const app = express()

........其它代码

//启动服务器

app.listen(3000, () => {

    console.log('服务器启动于 http://127.0.0.1:3000');

})

5.配置中间件

配置中间件   中间件配置放在 路由的上面 express.urlencoded 解析表单以 post 方式提交过来的数据

app.use(express.urlencoded({ extended: false }))

6.查询数据

将数据返回给客户端

我们通过postman 向服务器发送请求   请求到的数据需要返回给客户端

1. 安装express 模块

2.导入express 模块

3.创建服务器

4.启动服务器

5.注册路由  通过db.query 来执行sql 语句   如果执行成功, 将数据响应给客户端

//注册路由   将数据返回给客户端

app.get('/getuser', (req, res) => {

    //通过db.query 来执行sql 语句

    //mysql 的查询语句 :select * from users 查询users 表中的所有数据

    db.query('select * from users', (err, data) => {

        //如果查询失败 提示用户

        if (err) return console.log(err.message);

        //如果没有数据 提示用户数据为空

        if (data.length === 0) return console.log('表里面没有数据库');

        //console.log(data);

        //如果执行成功 将数据响应给客户端

        res.send({

            status: 0,

            msg: '数据获取成功',

            data

        })

    })

})

7.插入数据

 给users 中间添加用户名 与 密码

1. 创建对应的路由

2.通过req.body 来获取客户端提交过来的数据

3.配置中间件 express.urlencoded 解析表单以post 方式提交过来的数据  中间件应该放置在 路由的上面

4.执行sql 语句

5.如果失败 就提示用户, 判断err 如果是一个对象, 执行失败

6.如果知道数据已经写入到数据库中, 判断受影响的行数(affectedRows) .看其值是不是1, 如果不是1  就表示添加失败, 如果是1 就表示添加成功.

7.向客户端响应数据

//给users 中添加用户名与密码

app.post('/adduser', (req, res) => {

    //通过req.body 来获取客户端提交过来的数据

    const data = req.body

    //执行sql 语句    英文的? 表示占位符    insert into users set  插入新用户

    const sql = 'insert into users set ?'

    db.query(sql, data, (err, data) => {

        //如果写入失败, 提示用户   判断err如果是一个对象, 执行失败

        if (err) return console.log(err.message);

        //判断受影响的行数(affectedRows)看其值是不是 1

        if (data.affectedRows !== 1) return console.log('数据写入失败');

        //如果写入成功   向客户端响应数据

        res.send({

            status: 0,

            msg: '数据写入成功'

        })

    })

})

8.更新数据

 根据id来更新用户名

1. 创建对应的路由

2.通过req.body 来获取客户端提交过来的数据

3.配置中间件 express.urlencoded 解析表单以post 方式提交过来的数据  中间件应该放置在 路由的上面

4.执行sql 语句

5.如果失败 就提示用户, 判断err 如果是一个对象, 执行失败

6.如果知道数据已经更新到数据库中, 判断受影响的行数(affectedRows) .看其值是不是1, 如果不是1  就表示更新失败, 如果是1 就表示更新成功.

7.向客户端响应数据

//创建路由   根据id 来更新用户名

app.post('/updateuser', (req, res) => {

    //通过req.body 来获取客户端提交过来的数据

    const body = req.body

    //构建SQL语句

    const sql = 'update users set ? where id = ?'

    //执行SQL语句

    db.query(sql, [body, body.id], (err, data) => {

        //如果失败 就提示用户 判断 err 如果是一个对象  执行失败

        if (err) return console.log(err.message);

//如果知道数据已经更新成功, 判断受影响的行数 , 看其值是不是1  如果不是1  就表示更新失败, 如果值等于1 就表示更新成功

        if (data.affectedRows !== 1) return console.log('更新数据失败');

        //向客户端响应数据

        res.send({

            status: 0,

            msg: '更新数据成功'

        })

    })

})

 9.删除数据

根据 id 来删除数据

1.通过req.params 来获取动态参数

2.构建sql 语句

3.构建sql 语句

4.如果失败 就提示用户, 判断err 如果是一个对象, 执行失败

5.如果知道数据已经从数据库中删除, 判断受影响的行数(affectedRows) .看其值是不是1, 如果不是1  就表示删除失败, 如果是1 就表示删除成功.

6.向客户端响应数据

//根据 id 来删除数据

//通过req.params 来获取动态参数

app.get('/deluser/:id', (req, res) => {

    const id = req.params.id

    //构建sql 语句   第二句sql语句 执行后删除了找不回来  通常使用第一句来删除

    const sql = 'update users set status = 0 where id = ?'

   // const sql = 'delete from users where id = ? '

  通过 db.query

    db.query(sql, id, (err, data) => {

        //如果失败  就提示用户 判断err 如果是一个对象 执行失败

        if (err) return console.log(err.message);

        if (data.affectedRows !== 1) return console.log('删除失败');

        //向客户响应数据

        res.send({

            status: 0,

            msg: '删除成功'

        })

    })

})

 在项目中操作 MySQL 代码
//安装mysql 模块
//导入mysql 模块
const mysql = require('mysql')

//在所在文件夹终端 安装express模块
//导入 express 
const express = require('express')

//创建服务器
const app = express()

//建立与mysql 数据库的链接
const db = mysql.createPool({
    host: '127.0.0.1',   //数据库的IP 地址
    user: 'root',     //登录数据库的账号
    password: 'root',   //登录数据库的密码
    database: 'web67'    //指定要操作哪个数据库
})

//配置中间件   中间件配置放在 路由的上面 express.urlencoded 解析表单以 post 方式提交过来的数据
app.use(express.urlencoded({ extended: false }))

//注册路由   将数据返回给客户端
app.get('/getuser', (req, res) => {

    //通过db.query 来执行sql 语句
    //mysql 的查询语句 :select * from users 查询users 表中的所有数据
    db.query('select * from users', (err, data) => {
        //如果查询失败 提示用户
        if (err) return console.log(err.message);
        //如果没有数据 提示用户数据为空
        if (data.length === 0) return console.log('表里面没有数据库');
        //console.log(data);

        //如果执行成功 将数据响应给客户端
        res.send({
            status: 0,
            msg: '数据获取成功',
            data
        })
    })
})

//给users 中添加用户名与密码
app.post('/adduser', (req, res) => {
    //通过req.body 来获取客户端提交过来的数据
    const data = req.body

    //执行sql 语句    英文的? 表示占位符    insert into users set  插入新用户
    const sql = 'insert into users set ?'
    db.query(sql, data, (err, data) => {
        //如果写入失败, 提示用户   判断err如果是一个对象, 执行失败
        if (err) return console.log(err.message);
        //判断受影响的行数(affectedRows)看其值是不是 1
        if (data.affectedRows !== 1) return console.log('数据写入失败');
        //如果写入成功   向客户端响应数据
        res.send({
            status: 0,
            msg: '数据写入成功'
        })
    })
})

//创建路由   根据id 来更新用户名
app.post('/updateuser', (req, res) => {
    //通过req.body 来获取客户端提交过来的数据
    const body = req.body
    //构建SQL语句
    const sql = 'update users set ? where id = ?'
    //执行SQL语句
    db.query(sql, [body, body.id], (err, data) => {
        //如果失败 就提示用户 判断 err 如果是一个对象  执行失败
        if (err) return console.log(err.message);
//如果知道数据已经更新成功, 判断受影响的行数 , 看其值是不是1  如果不是1  就表示更新失败, 如果值等于1 就表示更新成功
        if (data.affectedRows !== 1) return console.log('更新数据失败');
        //向客户端响应数据
        res.send({
            status: 0,
            msg: '更新数据成功'
        })
    })
})


//根据 id 来删除数据
//通过req.params 来获取动态参数
app.get('/deluser/:id', (req, res) => {
//通过req.params 来获取动态参数
    const id = req.params.id
    //构建sql 语句   第二句sql语句 执行后删除了找不回来  通常使用第一句来删除
    const sql = 'update users set status = 0 where id = ?' 
   // const sql = 'delete from users where id = ? '
    //执行SQL 通过 db.query
    db.query(sql, id, (err, data) => {
        //如果失败  就提示用户 判断err 如果是一个对象 执行失败
        if (err) return console.log(err.message);
        //如果知道数据已经删除成功, 判断受影响的行数 , 看其值是不是1  如果不是1  就表示删除失败, 如果值等于1 就表示删除成功
        if (data.affectedRows !== 1) return console.log('删除失败');
        //向客户响应数据
        res.send({
            status: 0,
            msg: '删除成功'
        })
    })
})

//启动服务器
app.listen(3000, () => {
    console.log('服务器启动于 http://127.0.0.1:3000');
})

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313058.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号