Express框架开发接口之今日推荐等模块

1.初始化

后面还需要优化,比如说每个模块展示多少条数据,猜你喜欢分页处理等

Express框架开发接口之今日推荐等模块_第1张图片

const handleDB = require('../handleDB/index')
// 获取全部模块
exports.allModule = async(req, res) => {
  
}
// 更新或者添加模块
exports.upModule = async(req, res) => {

}
// 根据id删除模块
exports.delModule = async(req, res) => {
  
}
// 根据产品module_id不同返回不同模块的商品
exports.diffModule =async (req, res) => {
   
}

2.数据库设计

Express框架开发接口之今日推荐等模块_第2张图片

3.获取所有模块

// 获取全部模块
exports.allModule = async (req, res) => {
    const result = await handleDB(res, "book_module", "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 })

}

Express框架开发接口之今日推荐等模块_第3张图片

4.添加或者更新模块

exports.upModule = async (req, res) => {
    const { id, ...data } = req.body
    if (id) {
        // / 如果navId存在,则更新模块信息
        const result = await handleDB(res, 'book_module', 'update', '更新失败', `module_id=${id}`, data);

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

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

        // 3.查询数据库,看看是否存在这个模块
        let result1 = await handleDB(res, "book_module", "find", "数据库查询出错", { where: `module_name="${data.module_name}"` })

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

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

        res.send({ code: 200, message: '添加模块数据成功' });
    }

}

Express框架开发接口之今日推荐等模块_第4张图片

5.根据id删除模块

// 根据id删除模块
exports.delModule = async (req, res) => {
    const id = req.params.id
    if (!id) {
        return res.send({ code: 0, message: '缺少必参数id' })
    }
    const result = await handleDB(res, "book_module", "find", "数据库查找失败", { where: `module_id=${id} AND status=0` })
    if (result.length !== 1) {
        return res.send({ code: 0, message: '该模块不存在' })

    }
    const results = await handleDB(res, "book_module", "update", "数据库查找失败", `module_id= ${id}`, { status: 1 })
    // 6 SQL 语句执行成功,但是影响行数不等于 1
    if (results.affectedRows !== 1) return res.send({ code: 0, message: '删除该模块失败!' })
    res.send({ code: 200, message: '删除模块成功', });
}

Express框架开发接口之今日推荐等模块_第5张图片

Express框架开发接口之今日推荐等模块_第6张图片

6.获取模块数据

(根据module表中module_id和product表中module_id对应,但是我不会根据有几个不同的id返回几个数组而且后面还能增加添加数据,但是返回数据的数组名字可能是bookData[0],bookData[1],bookData[3],这种)

但是一般来说我们都需要一个一个接口去写

Express框架开发接口之今日推荐等模块_第7张图片

Express框架开发接口之今日推荐等模块_第8张图片

别人就是一个一个接口去写的,我暂时理不通有几个id就返回几个数组的,而且只能去遍历id对应另一个表数组的id 回数据的数组名字可能是bookData[0],bookData[1],bookData[3],这种)

我们给前台设置三个模块

Express框架开发接口之今日推荐等模块_第9张图片

也可以弄成一个接口看个人

// 获取今日推荐模块的产品书籍
exports.newProduct = async (req, res) => {
    const result = await handleDB(res, "book_module", "find", "book_module数据库查找失败",)
    console.log(result[0]);
    const results = await handleDB(res, 'book_product', "find", "book_product数据库查找失败", {

        where: `module_id = ${result[0].module_id}`
    })
    const total = results.length;
    res.send({ code: 200, message: '获取今日推荐列表成功', total: total, data: results })
}
// 获取热门好书模块

exports.hotProduct = async (req, res) => {
    const result = await handleDB(res, "book_module", "find", "book_module数据库查找失败",)
    if (result.length == 0) {
        return res.send({ code: 0, message: '该数据不存在' })

    }
    const results = await handleDB(res, 'book_product', "find", "book_product数据库查找失败", {

        where: `module_id = ${result[1].module_id}`
    })
    const total = results.length;
    res.send({ code: 200, message: '获取热门好书列表成功', total: total, data: results })

}
// 获取猜你喜欢模块
exports.likeProduct = async (req, res) => {
    const result = await handleDB(res, "book_module", "find", "book_module数据库查找失败",)

    console.log(result[2]);
    const results = await handleDB(res, 'book_product', "find", "book_product数据库查找失败", {

        where: `module_id = ${result[2].module_id}`
    })
    const total = results.length;
    res.send({ code: 200, message: '获取猜你喜欢列表成功', total: total, data: results })

}

你可能感兴趣的:(express,前端,java)