node express

73 阅读2分钟
// 导入mysql
const mysql = require('mysql')
// 导入express
const express = require('express')

// 导入 cors 中间件
const cors = require('cors')


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

// 将 cors 注册为全局中间件
app.use(cors())
// 配置中间件
//配置解析 application/json 格式数据的内置中间层
app.use(express.json())
//配置解析 application/x-www-urlencoded 格式数据的内置中间件
app.use(express.urlencoded({ extended: false }))
// 通过createPool方法连接服务器
const db = mysql.createPool({
    host: '127.0.0.1', // 表示连接某个服务器上的mysql数据库
    user: 'root', // 数据库的用户名 (默认为root)
    password: 'QIANqian9!', // 数据库的密码 (默认为root)
    database: 'demo',// 创建的本地数据库名称
})
// 通过nodejs获取数据库中的数据  并返回给客户端------------------ 
app.get('/user', (req, res) => {
    // 通过db.query方法来执行mysql  测试是否连接成功
    // 查询语句 data 得到的是一个数组,  增删改得到的是受影响的行数
    db.query('select * from user', (err, data) => {
        if (err) return console.log(err.message); // 连接失败
        if (data.length === 0) return console.log('数据为空'); // 数据长度为0 则没有获取到数据
        // 否则获取成功,将结果返回给客户端res.send
        res.send({
            status: 0,
            msg: '数据获取成功',
            data
        })
    })
})

// 给user中添加用户名和密码
app.post('/addUser', (req, res) => {
    const data = req.body // 获取数据(要配置中间件来解析数据  否则显示undefind)
    console.log(data, '/addUser----')
    const sql = 'insert into user set ?' // 构建sql语句
    // 执行sql语句
    db.query(sql, data, (err, data) => {
        if (err) return console.log(err.message); // 判断sql是否执行失败
        // 判断数据是否插入成功 看affectedRows的值是否为1,不为1则写入失败
        if (data.affectedRows !== 1) return console.log('数据写入失败');
        // 否则写入成功 返回客户端
        res.send({
            status: 0,
            msg: '数据写入成功'
        })
    })
})


// 登录用户
app.post('/login', (req, res) => {
    const data = req.body // 获取数据(要配置中间件来解析数据  否则显示undefind)
    console.log(req)
    console.log(data, '/loginUser----')
    const sql = `select * from user where username=?`
    // 执行sql语句
    db.query(sql, data.username, (err, result) => {
        if (err) return console.log(err.message); // 判断sql是否执行失败
        console.log(result, 'sql result')
        // 
    
        if (result.length>0&&result[0].password == data.password) {
            console.log('登录成功');
            return res.send({
                status: 0,
                msg: '登录成功!',
                data:result[0]
            })
        }
        // 否则写入成功 返回客户端
        res.send({
            status: 2,
            msg: '登录失败!'
        })
    })
})

// 根据id来更新用户名------------------
app.post('/updateUser', (req, res) => {
    const data = req.body
    const sql = 'update user set ? where id = ?'
    db.query(sql, [data, data.id], (err, data) => {
        if (err) return console.log(err.message);
        if (data.affectedRows !== 1) return console.log('数据更新失败');
        // 数据更新成功 返回客户端结果
        res.send({
            status: 0,
            msg: '数据更新成功'
        })
    })
})

// 根据id来删除数据---------------------
app.get('/deleteData/:id', (req, res) => {
    const data = req.params.id // 获取动态id参数
    const sql = 'delete from user where id = ?' // 构建sql语句
    db.query(sql, data, (err, data) => {
        if (err) return console.log(err.message);
        if (data.affectedRows !== 1) return console.log('数据删除失败');
        res.send({
            status: 0,
            msg: '数据删除成功'
        })
    })
})

// 启动服务器
app.listen(8082, () => {
    console.log('running...');
})