为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Node.js 架构

课程名称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
        }
    }
}

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消