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 })
}