【金秋打卡】第17天 《Node.js+Koa2+MySQL 打造前后端分离精品项目》
2022/11/12 3:23:57
本文主要是介绍【金秋打卡】第17天 《Node.js+Koa2+MySQL 打造前后端分离精品项目》,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称: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中直接引入并使用即可。
七月老师非常注重在讲编程知识的同时,讲编程思维,讲知识和知识之间的关系。编程是实践性非常强的工作,学习知识最好的方法是放到项目中。做项目的目的不是做项目,最终要做出来自己的项目,业务承载的是编程知识。明天继续刷后边的课程。
这篇关于【金秋打卡】第17天 《Node.js+Koa2+MySQL 打造前后端分离精品项目》的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程