Express框架开发接口之前台分类导航

1.初始化

const handleDB = require('../handleDB/index')
// 获取全部导航
exports.allNav =async (req, res) => {
  
}
// 更新或者添加导航
exports.upNav =async (req, res) => {
  
}
// 根据id删除
exports.delNav = async(req, res) => {
  
}

2.数据库设计

aynsc 使函数变成异步函数配合await使用 利用箭头函数的形式

简化(async funtion(){})

抛出异常的写法:

   try {
 } catch (error) {
        console.error('upNav中的错误:', error);
        res.send({ code: 500, message: '内部服务器错误' });
    }

3.获取全部前台导航分类

// 获取全部导航分类
exports.allNav = async (req, res) => {

    let result = await handleDB(res, 'book_nav', "find", "查询数据库出错", { where: `status=0` })
    if (result.length == 0) {
        res.send({ code: 0, message: "导航列表为空" })
    }
    const total = result.length;
    res.send({ code: 200, message: '获取导航列表成功', total: total, data: result })

}

4.更新或者添加导航

// 更新或者添加导航
exports.upNav = async (req, res) => {
    try {
        // 解构请求体
        const { navId, ...data } = req.body;

        // 检查navId是否存在
        if (navId) {
            // 如果navId存在,则更新导航信息
            const result = await handleDB(res, 'book_nav', 'update', '更新失败', `navId=${navId}`, data);

            // 检查更新是否成功
            if (result.affectedRows !== 1) {
                return res.send({ code: 0, message: '更新导航分类数据失败!' });
            }

            res.send({ code: 200, message: '更新导航分类数据成功' });
        } else {
            // 如果navId不存在,则添加导航信息

            // 3.查询数据库,看看是否存在这个用户名
            let result1 = await handleDB(res, "book_nav", "find", "数据库查询出错", { where: `navName="${data.navName}"` })

            // 4.如果已经存在,返回用户名已经被注册 return
            if (result1.length > 0) {
                res.send({ code: 0, message: "导航分类名已经被注册,请更换其他导航分类名!" });
                return
            }
            const result = await handleDB(res, 'book_nav', 'insert', '添加失败', data);

            // 检查插入是否成功
            if (result.affectedRows !== 1) {
                return res.send({ code: 0, message: '添加导航分类数据失败!' });
            }

            res.send({ code: 200, message: '添加导航分类数据成功' });
        }
    } catch (error) {
        console.error('upNav中的错误:', error);
        res.send({ code: 500, message: '内部服务器错误' });
    }
};

5.根据id删除

// 根据id删除
exports.delNav = async (req, res) => {
    //  console.log(11);
    const navId = req.params.navId;
    if (!navId) {
        res.send({ code: 0, message: '获取参数为空' })

    }

    // 3根据id查询数据库是否存在该导航分类
    let result = await handleDB(res, "book_nav", "find", "book_nav查询出错", {
        where: `navId = ${navId} AND status = 0`
    });
    // console.log(result);
    // 4 检查指定 id 的导航是否存在
    if (result.length !== 1) return res.send({ code: 0, message: '该分类不存在!' })
    let results = await handleDB(res, "book_nav", "update", "查询数据出错!", `navId= ${navId}`, { status: 1 });
    // 6 SQL 语句执行成功,但是影响行数不等于 1
    if (results.affectedRows !== 1) return res.send({ code: 0, message: '删除导航分类失败!' })
    res.send({ code: 200, message: '删除导航分类成功', });

}

6.根据id获取不同的书产品列表

// 根据不同的id获取不同的书籍产品
exports.getProduct = async (req, res) => {
    const id = req.params.id;
    if (!id) {
        return res.send({ code: 0, message: '获取参数为空' })

    }

    // 3根据id查询数据库是否存在该产品
    let result = await handleDB(res, "book_product", "find", "book_product查询出错", {
        where: `product_id = ${id} AND status = 0`
    });
    // console.log(result);
    // 4 检查指定 id 的产品是否存在
    if (result.length == 0) return res.send({ code: 0, message: '该产品列表为空!' })
    const total = result.length
    res.send({ code: 200, message: "获取产品列表成功", total: total, data: result })
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值