Commit Graph

39 Commits

Author SHA1 Message Date
Jeremy Yin 81eee14d5d 在控制器里面可以附加metadata,在守卫里面可以通过reflector来获取到对应handler的metadata 2019-06-19 22:10:06 +08:00
Jeremy Yin 8bb51034c7 guards,把demoAuth去掉,把demoRoles用在全局APP上 2019-06-19 21:50:55 +08:00
Jeremy Yin 3f353b9936 新建一个demoRoles的守卫,nest generate guard demoRoles core/guards 2019-06-19 21:45:02 +08:00
Jeremy Yin 37ab2ebe18 启用一个简单的守卫,验证headers信息里面有没有x-demo等于secret这个值,有就通过没有就不通过报403 2019-06-19 21:43:45 +08:00
Jeremy Yin d20d72db9a guard,守卫,身份验证用的吧,创建一个,nest generate guard demoAuth core/guards 2019-06-19 21:33:11 +08:00
Jeremy Yin 8f9ae7d1b9 Params里面可以加数据转换pipe,这样拿到的参数值就会是转换过后的。这个好像比在tornado自己写get...方法要更通用? 2019-06-19 21:31:08 +08:00
Jeremy Yin 2566b3375e 注释掉加载全局的不完善的自定义错误处理方法 2019-06-19 21:22:36 +08:00
Jeremy Yin 83943ece43 给post dto 的 title 加上字符串验证 2019-06-19 21:22:03 +08:00
Jeremy Yin fee353b81f 安装数据验证与转换工具库,yarn add class-transformer class-validator --save 2019-06-19 21:21:32 +08:00
Jeremy Yin c956570805 甚至是吧filter使用到app的全局去,按理一般应该是会在全局使用的,不过多人开发以及不同的功能模块会有不同的处理逻辑也不一定 2019-06-18 22:48:25 +08:00
Jeremy Yin b4306f2cbb 刚是具体路由的方法层面,也可以放到整个主路由控制器层面 2019-06-18 22:43:55 +08:00
Jeremy Yin 8ef85cd82e 使用上了自定义的filter来处理异常,需要注意是引入filter的路径问题,从当前往上找两层文件夹就可以,其它src开头的相对路径不行 2019-06-18 22:41:43 +08:00
Jeremy Yin 0e349316f8 然后把异常定义一下 2019-06-18 22:24:11 +08:00
Jeremy Yin 7aea5a1308 创建一个异常过滤器,用来处理异常信息逻辑,nest generate filter demo core/filters 2019-06-18 22:17:14 +08:00
Jeremy Yin dcece6ecdb 手工抛一个异常出来看看,{
"error": "Forbidden",
    "message": "没有权限!",
    "statusCode": 403
},快捷对象比普通对象多返回一个error字段
2019-06-18 22:15:05 +08:00
Jeremy Yin 41e876acd6 把中间件用起来:中间件是三参数工具,使用需要修改AppModule的configure,加入consumer来apply和forRoutes,这里应该是可以给数组,用来对多个路由进行处理吧 2019-06-18 22:07:12 +08:00
Jeremy Yin bf25cd7eaa 将posts转为一个module;先建个nest generate module posts,然后把posts整个放到modules里面去,把controller和provider收紧到posts module里面去 2019-06-18 21:50:28 +08:00
Jeremy Yin 71a16606db 更加简便的注入方法,不用事先声明及使用this来赋值 2019-06-18 21:27:42 +08:00
Jeremy Yin 4ee0b7210b 把服务的DemoService引入到controller来,get路由对应findAll,post对应create,暂时保存在临时对象 2019-06-18 21:23:43 +08:00
Jeremy Yin b56361bfad 引入Post,新建两个方法:findAll,create 2019-06-18 21:12:44 +08:00
Jeremy Yin c319205215 接口暂只一个字段,title 2019-06-18 21:12:12 +08:00
Jeremy Yin 1f15a00a22 生成接口文件,post interface,nest generate interface post posts/interfaces 2019-06-18 21:06:28 +08:00
Jeremy Yin 5b437f9704 生成服务,demo,nest generate service demo posts/providers 2019-06-18 21:01:46 +08:00
Jeremy Yin a461b327b5 生成demo中间件 2019-06-18 20:58:37 +08:00
Jeremy Yin 64daa23bb6 Merge branch 'master' into core 2019-06-18 20:57:30 +08:00
Jeremy Yin d6b070d25a 加上相关链接 2019-06-18 00:32:04 +08:00
Jeremy Yin 7f730348c6 文字记录暂时先存到项目里面来 2019-06-18 00:29:10 +08:00
Jeremy Yin c9a4cf1988 Merge branch 'core' 2019-06-17 23:25:56 +08:00
Jeremy Yin 34ea934195 dto对象 2019-06-17 23:25:43 +08:00
Jeremy Yin aea8856148 post请求,发body json格式数据,通过body拿到数据,状态响应是201,跟tornado全部200有些不一样,更接近restful标准 2019-06-17 23:19:36 +08:00
Jeremy Yin 028c2771d1 路由带ID的请求,方法后面加个:id,使用@Param取得参数值,类似python的位置参数 2019-06-17 23:14:27 +08:00
Jeremy Yin 585c6f6b28 在请求里面自定义添加headers,Authorization和X-Hello,程序收到的是小写的authorization及x-hello,装饰器不加参数是全部对象,加参数是获取某一个头部信息,获取多个怎么拿? 2019-06-17 23:09:23 +08:00
Jeremy Yin 245af79f31 headers:{
host: 'localhost:3000',
  connection: 'close',
  'user-agent': 'Paw/3.1.8 (Macintosh; OS X/10.14.5) GCDHTTPRequest'
}
2019-06-17 23:01:59 +08:00
Jeremy Yin 9479429b8c query: 给URL跟问号参数?filter=popular&order=date,得到log { filter: 'popular', order: 'date' } 2019-06-17 22:59:03 +08:00
Jeremy Yin 31f62a8fa8 request 2019-06-17 22:55:14 +08:00
Jeremy Yin b09fa24810 get posts return array 2019-06-17 22:48:32 +08:00
Jeremy Yin 77a3611d7f Merge branch 'request-response' 2019-06-17 22:21:47 +08:00
Jeremy Yin 396ffae09e nest generate controller posts 2019-06-17 22:20:54 +08:00
Jeremy Yin 40ff4c3fc2 init 2019-06-17 22:05:52 +08:00