继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第3天 封装通用工具函数

stb烙饼
关注TA
已关注
手记 84
粉丝 2
获赞 4

课程名称:Vue3+ElementPlus+Koa2 全栈开发后台系统

课程章节: 第3章 Koa架构设计

主讲老师:河畔一角

课程内容:

今天学习的内容包括:封装后端程序中一些通用的工具函数,包括响应数据的封装,分页查询函数的封装。

课程收获:

1.状态码的封装

针对每个请求,服务端可能会有不同的处理结果,比如请求得到了成功处理,可以通过200表示成功,比如用户名和密码有误,可以通过10001表示。

在项目中要把这些状态码集中管理,方便实用和维护。将它们封装到 utils/index.js 文件中:

const CODE  = {
    SUCCESS: 200,
    PARAM_ERROR: 10001, // 参数错误
    USER_ACCOUNT_ERROR: 20001, // 账号或密码错误
    USER_LOGIN_ERROR: 30001, // 用户未登录
    BUSINESS_ERROR: 40001, // 业务请求失败
    AUTH_ERROR: 500001 // 认证失败或TOKEN过期
}

2.响应方法的封装

Koa.js 中向浏览器响应接口数据的方法是使用 res.body

router.get('/api/users', async ctx => {
    // ...
    ctx.body = {
        code: 0
        msg: 'ok',
        data: {}
    }
})

如果每个路由都要重复写这些内容,就有些代码冗余了。所以可以封装两个方法,分别处理成功的响应和失败的响应:

const log4js = require('./log4js')

module.exports = {
    success(data='', msg='', code=CODE.SUCCESS){
        log4js.debug(data);
        return {
            code,
            data,
            msg
        }
    },

     fail(msg='', code=CODE.BUSINESS_ERROR, data=''){
       log4js.debug(msg);
        return {
            code,
            data,
            msg
        }
      }
}

这样,在路由处理中,可以直接:

router.get('/api/users', async ctx => {
    // 成功
    ctx.body = utils.success(data, 'ok')
    // 失败
    ctx.body = utils.fail('error')
})

3.分页插叙方法的封装

分页查询是一种常见的需求,基本上每个项目都会用到。它主要通过用户传来的 pageNum 页码和 pageSize 条数来控制如何进行查询。

module.exports = {
    pager({pageNum=1,pageSize=10}){
        // 默认查询第一页,每页查询 10 条数据
        pageNum*=1;
        pageSize*=1;
        // 分页的条件:根据要查的页码和每页数据的数量进行过滤
        const skipIndex = (pageNum-1)*pageSize;
        return {
            page:{
                pageNum,
                pageSize
            },
            skipIndex
        }
    }
}

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP