nodejs学习笔记(32) - nest学习笔记(3) :依赖注入以及中间件
依赖注入
依赖注入是一种设计模式,它可以帮助我们更好地管理这些对象之间的依赖关系。在
NestJS中,我们可以使用依赖注入来自动创建和管理这些对象。我们只需要告诉NestJS我们需要哪些对象,它就会自动创建它们并将它们传递给需要它们的对象。通俗点讲,例如类,我们无需自己手动的去实例化某一个类,我们只需要告诉module层我们需要用到哪一个类即可(在module层中使用provider对外提供),随后在controller的构造函数中使用装饰符@Inject注入即可使用
源代码如下
- 下面使用了三种依赖注入的例子,包括
函数,变量以及类
// module层 |
// service层 (业务逻辑的编写) |
// controller(路由编写层以及依赖的使用层) |
中间件的使用
nestjs中的中间件与express中的中间件非常的相似,在我做的项目以来,最常用的还是用于登录鉴权的校验,tokne的解析校验等..中间件是在路由处理程序 之前 调用的函数。 中间件函数可以访问请求和响应对象,以及应用程序请求响应周期中的
next()中间件函数。next()中间件函数通常由名为next的变量表示。

局部中间件
- 顾名思义,局部中间件是在对应模块下使用的中间件,能够在用户访问对应的请求
URL路径时实现拦截操作
官方推荐使用命令行的形式去创建局部中间件
创建局部中间件
nest g mi middleWare_name |
生成的中间件文件夹下的中间件文件
// middleWare.ts |
在对应的module中使用局部中间件
// module层 |
中间件层
// middleWare |
结果展示

全局中间件
- 全局中间件的编写就比局部中间件的编写简单一点,我们直接进入到
main.ts(全局的模块引用文件)中编写即可
// main.ts |
结果展示:

第三方中间件的使用
- 第三方中间件的使用方法也非常的简单,与全局中间件的使用方法是比较一致的,这里我们使用
cors中间件来解决跨域请求(当然官方文档中也有解决跨域的方法)
安装第三方插件
npm i cors |
在main.ts中使用第三方插件
import { NestFactory } from '@nestjs/core'; |
结果展示:

拓展一下官方的配置请求跨域的方法
跨源资源共享(
CORS)是一种允许从另一个域请求资源的机制。在底层,Nest使用了 Express 的cors 包,它提供了一系列选项,您可以根据自己的要求进行自定义。
// 常用配置 - 直接在main.ts中配置即可 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0许可协议。转载请注明来自 肥林の仓库




