接下来几篇文章,我会从新建项目开始,一步一步完成以下几个工作内容。
1、NestJS中加载配置文件
2、NestJS中使用数据库,使用TypeOrm
3、NestJS中使用class-validator和validatorpipe(验证管道)
4、NestJS中使用JWT,创建auth.guard(守卫)
5、NestJS中使用winston记录日志
6、NestJS中使用中间件和拦截器
7、NestJS中事件监听器和消息队列
8、NestJS中使用缓存
上述内容,可能部分前后顺序发布文章,也可以自行官网学习。
准备工作
在一个空目录中,打开命令行,执行命令nest new your-project-name(需要提前安装nest-cli),这里我选择了使用pnpm包管理工具,所以后续安装包的命令需要使用pnpm安装。在项目根目录添加两个配置文件:
.env.development 开发环境用
.env.production 正式环境用
初始目录如下:
一、NestJS中使用配置文件
1、安装依赖包
pnpm i --save @nestjs/config
文档地址:
nest g module envconfig
此命令会创建一个envconfig.module.ts文件,并把此模块导入到app.module中。
3、打开envconfig.module.ts,添加以下代码:
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot({
envFilePath:
process.env.NODE_ENV === 'production'
? '.env.production'
: '.env.development',
isGlobal: true,
}),
],
exports: [ConfigModule],
})
export class EnvconfigModule {}
envFilePath:配置我们加载的配置文件
isGlobal:true 设置ConfigModule为全局模块
4、简单测试
我们打开.env.production文件,添加以下内容
HELLO=Hi,Boy
我们再app.controller.ts中读取配置文件
读取配置时,我们需要ConfigModule模块中的ConfigService,所以我们需要在app.controller.ts中注入ConfigService,添加以下代码(需要从@nestjs/config中导入ConfigService):
private readonly configService: ConfigService
让我们添加一个方法,获取刚才我们配置的HELLO
@Get('envHello')
getEnvHello(): string {
return this.configService.get<string>('HELLO')
}
此时,我们运行项目,调用接口http://localhost:3000/envHello
至此说明,我们已经配置成功了!