NestJS Awesome 项目入门教程
本教程将引导您了解 nestjs/awesome-nestjs
开源项目的目录结构、启动文件和配置文件。让我们开始探索这个精彩的 NestJS 资源库。
1. 项目的目录结构及介绍
nestjs/awesome-nestjs
仓库主要是一个列表,而非一个标准的项目结构。然而,如果您想了解典型的 NestJS 项目结构,下面是一个简要描述:
- src
├── main.ts # 应用的主入口文件
├── app.module.ts # 应用模块,用于注册服务和控制器
├── controllers # 存放应用的 HTTP 控制器
├── modules # 包含自定义业务模块
├── services # 业务逻辑层的服务
└── ...
- dist # 编译后的 TypeScript 代码
- test # 测试相关的文件
- nest-cli.json # NestJS CLI 配置文件
- .env # 环境变量文件(可选)
- package.json # 项目的依赖和脚本
- README.md # 项目说明
请注意,实际的 nestjs/awesome-nestjs
目录不包括这些代码文件,因为它是对 NestJS 资源的聚合。
2. 项目的启动文件介绍
虽然 nestjs/awesome-nestjs
不包含启动文件,但通常在 NestJS 项目中,src/main.ts
是启动文件。该文件创建 NestJS 应用实例并启动服务器。例如:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
在这个例子中,NestFactory.create()
初始化应用,传入 AppModule
,这是应用的顶级模块。listen()
方法使应用监听指定端口(这里是 3000)。
3. 项目的配置文件介绍
尽管 nestjs/awesome-nestjs
本身没有配置文件,但在实际的 NestJS 工程中,配置通常存储于 .env
文件中或者通过 @nestjs/config
模块进行管理。以下是一个简单的 .env
示例:
PORT=3000
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=password
DB_NAME=mydatabase
然后在应用中,你可以通过 ConfigModule
注册配置服务,如下所示:
// app.module.ts
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [ConfigModule.forRoot()],
// ...
})
export class AppModule {}
这样就可以在服务或控制器中注入配置服务,访问环境变量:
// my.service.ts
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
@Injectable()
export class MyService {
constructor(private configService: ConfigService) {}
getPort(): number {
return this.configService.get<number>('PORT');
}
}
以上就是关于 nestjs/awesome-nestjs
项目结构、启动文件和配置文件的基本介绍。对于进一步学习 NestJS,建议查看官方文档和示例项目。