node连接mysql

node连接mysql

安装依赖包

npm i express  mysql  body-parser -D

index.js

const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');

//解析 request 中 body的 urlencoded字符, 只支持utf-8的编码的字符,也支持自动的解析gzip和 zlib。返回的对象是一个键值对,当extended 为false时,键值对中的值就为'String'或'Array'类型,为true时,可以是任意类型。
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

//数据库连接配置
const db = mysql.createConnection({
    host: 'localhost',			//主机
    user: '',				   //数据库用户名
    password: '',			  //数据库密码
    database: ''             //选择数据库
});

//处理跨域
app.all("*",function(req,res,next){
    //设置允许跨域的域名,*代表允许任意域名跨域
    res.header("Access-Control-Allow-Origin","*");
    //允许的header类型
    res.header("Access-Control-Allow-Headers","content-type");
    //跨域允许的请求方式
    res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");
    if (req.method.toLowerCase() == 'options')
        res.send(200);  //让options尝试请求快速结束
    else
        next();
})

// 添加数据
app.post('/add', (req, res) => {
    let post = req.body;
    let sql = `INSERT INTO stu SET ?`; //stu为表名
    db.query(sql, post, (err, result) => {  //执行sql语句,插入到数据表中
        if (err) throw err;
    });
});

//删除数据
app.post('/delete', (req, res) => {
    let item = req.body;
    let sql = `DELETE FROM stu WHERE cno = ${item.cno}`;//删除条件为cno = item.cno
    db.query(sql, (err, result) => {
        if (err) throw err;
        let SQL= 'SELECT * FROM stu';
        db.query(SQL, (err, result) => {
            if (err) throw err;
            res.json(result);//返回数据给前端
        });
    });
});

// 查询数据
app.get('/select', (req, res) => {
    let sql = 'SELECT * FROM stu';
    db.query(sql, (err, result) => {
        if (err) throw err;
        res.json(result);
    });
});

//修改数据
app.post('/update', (req, res) => {
    let item = req.body;
    let sql = `UPDATE stu SET cxfs = '${item.cxfs}',czxt = '${item.czxt}' ,rjsx = '${item.rjsx}',Web = '${item.Web}' ,UI = '${item.UI}',mzd = '${item.mzd}',yjcs = '${item.yjcs}'
  WHERE cno = ${
        item.cno
    }`;
    //通过cno = item.cno搜索到要修改的数据,然后重新赋值,cxfs,czxt等为数据表字段名
    db.query(sql, (err, result) => {//执行sql语句
        let hu= 'SELECT * FROM stu';
        db.query(hu, (err, result) => {
            if (err) throw err;
            res.json(result);
        });
    });
});

app.listen(5000)//监听端口

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<button>获取全部的数据</button>
<button>添加数据</button>
<button>删除数据</button>
<button>修改数据</button>
<script>
    //获取全部的数据
    $('button').eq(0).click(function(){
        $.ajax({
            type: 'get',
            url: 'http:localhost:5000/select',
            success: function(data){
                console.log(data);
            },
            error: function () {
                console.log('error');
            }
        });
    })

    //添加数据
    $('button').eq(1).click(function(){
        $.ajax({
            data: {
                cno:123,
                age:686,
                name:'ca'
            },
            url: 'http:localhost:5000/add',
            type:'post',
            success: function(data){
                console.log(data);
            },
            error: function () {
                console.log('error');
            }
        });
    })

    //删除数据
    $('button').eq(2).click(function(){
        $.ajax({
            data: {
                cno:123,//删除数据时,通过唯一的id去匹配要删除的数据,cno
            },
            url: 'http:localhost:5000/delete',
            type:'post',
            success: function(data){
                console.log(data);
            },
            error: function () {
                console.log('error');
            }
        });
    })

    //修改数据
    $('button').eq(3).click(function(){
        $.ajax({
            data: {
                cno:123,//通过唯一的id找到需要修改的数据
                age:686,//修改age的值
                name:'hu',//修改name的值
            },
            url: 'http:localhost:5000/delete',
            type:'post',
            success: function(data){
                console.log(data);
            },
            error: function () {
                console.log('error');
            }
        });
    })

</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值