Jeremy Yin
|
d5ddcbfc30
|
Merge branch 'core'
|
2019-06-20 22:29:47 +08:00 |
Jeremy Yin
|
2ffe58a6b9
|
创建一个管道pipe,demo
|
2019-06-20 22:19:03 +08:00 |
Jeremy Yin
|
0833a38d69
|
针对User装饰器获取数据更进一步,直接拿user里面的数据,给一个字段给它,让它帮忙拿一下,这样就不用自己拿了。
|
2019-06-20 22:17:25 +08:00 |
Jeremy Yin
|
48a48e0a4c
|
启用一下刚这个errors拦截处理器,它现在把403错误变成了502错误,感觉用来做错误信息规范化比较适合
|
2019-06-20 21:59:56 +08:00 |
Jeremy Yin
|
3e83be0032
|
创建错误处理拦截器errors interceptor,之前好像有个过滤器filters?
|
2019-06-20 21:48:28 +08:00 |
Jeremy Yin
|
d56b4f21db
|
使用数据转换拦截器,这个感觉可以用来统一数据字段啥的,毕竟仅靠人为控制,不够绝对可控
|
2019-06-20 21:46:54 +08:00 |
Jeremy Yin
|
ad0359f4f4
|
添加一个转换数据的拦截器,nest generate interceptor transform core/interceptors
|
2019-06-19 23:08:45 +08:00 |
Jeremy Yin
|
3a04b50060
|
添加了一个pipe打印处理完handler的耗时
|
2019-06-19 23:06:35 +08:00 |
Jeremy Yin
|
efb6fe6a14
|
去掉控制器上的拦截器
|
2019-06-19 23:01:00 +08:00 |
Jeremy Yin
|
de3558a97d
|
控制器上可以启用拦截器,方法里面也可以;还可以全局启用,待会把控制器的去掉
|
2019-06-19 23:00:44 +08:00 |
Jeremy Yin
|
9d695d3f52
|
新建拦截器nest generate interceptor logging core/interceptors
|
2019-06-19 22:49:45 +08:00 |
Jeremy Yin
|
f887fbcf91
|
哦,还是要写参数啊
|
2019-06-19 22:46:58 +08:00 |
Jeremy Yin
|
2341872c51
|
每一个控制器都加角色数据?这会需要重复编写角色数据,不行,加个自定义装饰器来统一添加角色信息
|
2019-06-19 22:42:15 +08:00 |
Jeremy Yin
|
aaa24cac23
|
验证角色,现在是由中间件来帮忙添加用户角色信息,跟进头部信息来的。实际的话可能就是跟进用户ID查数据库来得到。
|
2019-06-19 22:40:19 +08:00 |
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 |