不少同学都是用 console.log
调试的,哪怕工作很多年依然是这样,这样有个致命的缺点:
你只能看到某个点的变量值,而看不到代码的整个执行路线。
对于复杂的项目来说,会用断点调试是必须的,因为这样可以看到作用域、调用栈,也就是代码的执行路线,然后单步运行来看变量的变化。
模块导出 provider,另一个模块需要 imports 它才能用这些 provider。
但如果这个模块被很多模块依赖了,那每次都要 imports 就很麻烦。
能不能设置成全局的,它导出的 provider 直接可用呢?
Module、Controller、Provider 是由 Nest 创建的,能不能在创建、销毁的时候执行一些逻辑呢?
Nest 内置了很多装饰器,大多数功能都是通过装饰器来使用的。
但当这些装饰器都不满足需求的时候,能不能自己开发呢?
装饰器比较多的时候,能不能把多个装饰器合并成一个呢?
自然是可以的。
很多内置装饰器我们都可以自己实现。
不知道大家有没有感觉很神奇,只是通过装饰器声明了一下,然后启动 Nest 应用,这时候对象就给创建好了,依赖也给注入了。
那它是怎么实现的呢?
大家如果就这样去思考它的实现原理,还真不一定能想出来,因为缺少了一些前置知识。也就是实现 Nest 最核心的一些 api
: Reflect
的 metadata
的 api
。
Nest 支持创建多种类型的服务:
包括 HTTP 服务、WebSocket 服务,还有基于 TCP 通信的微服务。
这三种服务都会支持 Guard、Interceptor、Exception Filter 功能。
上一页
下一页