第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【金秋打卡】第17天 《Node.js+Koa2+MySQL 打造前后端分離精品項(xiàng)目》

標(biāo)簽:
Node.js JavaScript

课程名称:Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

课程章节:第5章 LinValidator校验器与Sequelize Orm生成MySQL数据表

视频:5-1 Lin-Validator使用指南

课程讲师: 七月

课程内容:

处理未知异常,之前课程只处理了已知的异常,现在处理一下未知异常。

//改造后的exception.js
//注意else后边的代码是处理未知异常
const { HttpException } = require("../core/http-exception")

const catchErrof = async (ctx, next) => {
    try {
        await next()
    } catch (error) {
        if (error instanceof HttpException) {
            ctx.body = {
                msg: error.msg,
                error_code: error.errorCode,
                request: `${ctx.method} ${ctx.path}`,
               
            }
            ctx.status = error.code
        }
        else {
            //处理未知异常
            ctx.body = {
                msg: '我们遇到了一个错误 ~~~',
                error_code: 999,
                request: `${ctx.method} ${ctx.path}`
            }
            ctx.status = 500
        }
    }
}
module.exports = catchErrof

classic.js中 if(true)之前随便写一点不符合javascript语法的代码,就能触发未知异常。

//触发未知异常时得到的返回
{
    "msg": "我们遇到了一个错误 ~~~",
    "error_code": 999,
    "request": "POST /v1/4/classic/latest"
}

 Lin-Validator
接收来,但是为验证的参数,一般是不敢直接使用的。

//validtator.js
const { LinValidator, Rule } = require('../../core/lin-validator')

class PositiveIntegerValidator extends LinValidator {
    constructor() {
        super()
        this.id = [
            new Rule('isInt', '需要是正整数', {min:1})
        ]
    }
}

module.exports = {
    PositiveIntegerValidator
}
const Router = require('koa-router')
const router = new Router()
const {PositiveIntegerValidator} = require('../../validator/validator')


router.post('/v1/:id/classic/latest', (ctx, next) => {
    const path = ctx.params
    const query = ctx.request.query
    const headers = ctx.request.header
    const body = ctx.request.body

   
    const v = new PositiveIntegerValidator().validate(ctx)
   
    // true 仅仅为了测试
   
    // if (true) { 
    //  const error = new global.errs.ParameterExcetion()
    //  throw error
    // }
    // ctx.body = {
    //  key: 'classic',
    //  path: path,
    //  query,
    //  headers,
    //  body
    // }

    //throw new Error('API Exception')
})


module.exports = router



课程收获:

只处理已知异常是不够的。未知异常也要进行处理。

可以自定一个校验类,用来校验是否为正整数,继承LinValidator,写好校验规则。

在classic.js中直接引入并使用即可。


七月老师非常注重在讲编程知识的同时,讲编程思维,讲知识和知识之间的关系。编程是实践性非常强的工作,学习知识最好的方法是放到项目中。做项目的目的不是做项目,最终要做出来自己的项目,业务承载的是编程知识。明天继续刷后边的课程。

https://img3.sycdn.imooc.com/636bbea7000104da10250641.jpg


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消