手记

【金秋打卡】第18天 《Node.js+Koa2+MySQL 打造前后端分离精品项目》

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

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

视频:5-2 Lin-Validator获取HTTP参数

课程讲师: 七月

课程内容:

课程讲了LinValidator如何获取参数。

LinValidator有获取参数的内置方法,直接调用内置方法即可获取参数。

v.get('path.id')    //可以获取path.id 可以直接获取到数字类型
//如果不希望校验器自动转换,可以加上参数 parsed=false
const Router = require('koa-router')
const router = new Router()
const {PositiveIntegerValidator} = require('../../validator/validator')


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

   
    const v = await new PositiveIntegerValidator().validate(ctx, {
        id: 'index'
    })
    //增加上parse=false可以不让校验器字段把string转为int
    const id = v.get('path.id', parse=false)
})

module.exports = router

LinValidator自带三种数据类型的转换:

    整型数字

    float

    boolean

使用验证器获取参数的好处是可以获取更复杂的参数,比如参数很复杂的时候:

    const c = {
        a: 1,
        b: {
            f: 2,
            e: {

            }
        }
    }
    v.get.apply('body.b.e')
    如果是较复杂的结构,依然用 '点'的方式可以获取到参数

传统方法是逐层判断。


课程收获:

课程内容是如何获取参数. LinValidator内置了获取参数的方法。使用方法后,获取参数很方便。相对于传统的取参方法。Linvalidator显然更高效。


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

0人推荐
随时随地看视频
慕课网APP