import express from 'express';
import mysql from 'mysql2';
const app = express(); //创建了服务器的对象
const conn = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: 'root',
    database: 'dudainfo'
}); //创建了数据库连接对象

app.use(express.json()); //解析请求体

//增查改删
//请求响应 = 头（相关的信息） + 体（数据）
//get 头（没有请求体）

//增加商品post
app.post('/product', (req, res) => { 
    const {name,price} = req.body;
    if(!name || !price) return res.send('参数不全');
    const sql = 'insert into product(name,price) values(?,?)'
    conn.query(sql,[name,price],(err,result)=>{
        if(err) return res.send('添加失败，服务器错误');
        if(result.affectedRows == 0) return res.send('添加失败');
        res.send('添加成功');
    })
    
});

//查询
app.get('/product', (req, res) => { 
    const sql = 'select * from product';
    conn.query(sql,(err,result)=>{
        if(err) return res.send('查询失败');
        res.json(result);
    })
});

//删除
app.delete('/product/:id',(req,res)=>{
    const {id} = req.params;
    if(!id) return res.send('参数不全');
    const sql = 'delete from product where id = ?';
    conn.query(sql,[id],(err,result)=>{
        if(err) return res.send('删除失败，服务器错误');
        if(result.affectedRows == 0) return res.send('删除失败,商品可能不存在');
        res.send('删除成功');
    })
})

//更新
app.put('/product',(req,res)=>{ 
    const {id,name,price} = req.body;
    if(!id) return res.send('缺少id');
    if(!name || !price) return res.send('参数不全');
    const setArr = [];
    const dataArr = [];
    if(name){
        setArr.push(`name = '${name}'`);
        dataArr.push(name);
    }
    if(price){
        setArr.push(`price = ${price}`);
        dataArr.push(price);
    }
    const sql = `update product set ${setArr.join(',')} where id = ${id}`;
    conn.query(sql,dataArr,(err,result)=>{ 
        if(err) return res.send('更新失败，服务器错误');
        if(result.affectedRows == 0) return res.send('更新失败,商品可能不存在');
        res.send('更新成功');
    })
})



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