十二、全局模块

当希望提供一组应该在所有地方开箱即用的提供者,可以使用@Global()装饰器将模块设置为全局

1
2
3
@Global()
@Module({})
export class XXXModule {}
阅读更多

十、模块的导入

前边我们说了ControllerProvider,都是在appModule直接引入的,这就是我们的根模块,是构建应用图的起点。我们还会有其他的各种模块,每个模块封装了一组密切相关的功能。

@Module装饰器接收一个对象,对象的属性描述了模块:

  • providers - 由Nest注入容器实例化的提供者,可以在当前模块内共享
  • controllers - 此模块定义的一组控制器
  • imports - 导入的模块列表,被导入的模块中导出当前模块中所需要的providers
  • exports - 导出的providers, 是当前模块的providers的子集,可以在其他导入当前模块的模块中使用(也可以重新导出导入的模块,这种情况下就不是providers的子集了)

关于providerscontrollers,我们前边已经讲过了,而importsexports就是与模块相关的内容了。

本章节我们关注模块的导入,也就是imports的内容

阅读更多

九、Provider和DI

之前我们写完了controller,然后补充了一些扩展知识,接下来我们继续完成provider的功能,主要是service服务

然后我们要实现Provider的注入

阅读更多

三、请求相关的参数装饰器

在上一节,我们已经成功启动了服务,现在我们要来封装一些常用的参数装饰器。

们主要实现几个参数装饰器,获取常用的一些信息,如Request, Query, Headers, Param

关于我们要封装的参数装饰器的用法,这里不会赘述,更多的关注其实现,如果不清楚用法请先自行查看官方文档。后续的封装也保持这个思路。

阅读更多