NestJS Passport 项目教程
1. 项目的目录结构及介绍
NestJS Passport 项目的目录结构如下:
/nestjs-passport
├── src
│ ├── auth
│ │ ├── auth.module.ts
│ │ ├── auth.service.ts
│ │ ├── constants.ts
│ │ ├── jwt.strategy.ts
│ │ ├── local.strategy.ts
│ │ └── passport.provider.ts
│ ├── app.module.ts
│ ├── main.ts
│ └── app.controller.ts
│ └── app.service.ts
├── test
├── package.json
├── tsconfig.json
└── README.md
目录结构介绍
src/
: 源代码目录auth/
: 认证相关模块auth.module.ts
: 认证模块定义auth.service.ts
: 认证服务constants.ts
: 常量定义jwt.strategy.ts
: JWT 策略local.strategy.ts
: 本地策略passport.provider.ts
: Passport 提供者
app.module.ts
: 应用模块定义main.ts
: 应用入口文件app.controller.ts
: 应用控制器app.service.ts
: 应用服务
test/
: 测试目录package.json
: 项目依赖和脚本tsconfig.json
: TypeScript 配置文件README.md
: 项目说明文档
2. 项目的启动文件介绍
main.ts
main.ts
是 NestJS 应用的入口文件,负责启动应用。以下是 main.ts
的示例代码:
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)
: 创建 NestJS 应用实例,传入根模块AppModule
。app.listen(3000)
: 启动应用,监听 3000 端口。
3. 项目的配置文件介绍
package.json
package.json
文件定义了项目的依赖、脚本和其他元数据。以下是 package.json
的部分内容:
{
"name": "nestjs-passport",
"version": "1.0.0",
"scripts": {
"start": "nest start",
"build": "nest build",
"test": "jest"
},
"dependencies": {
"@nestjs/common": "^8.0.0",
"@nestjs/core": "^8.0.0",
"@nestjs/passport": "^8.0.0",
"passport": "^0.4.1",
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0",
"reflect-metadata": "^0.1.13",
"rxjs": "^7.4.0"
},
"devDependencies": {
"@nestjs/testing": "^8.0.0",
"jest": "^27.2.0",
"ts-jest": "^27.0.5",
"typescript": "^4.4.3"
}
}
配置文件解析
scripts
: 定义了启动、构建和测试的脚本。dependencies
: 生产环境依赖包。devDependencies
: 开发环境依赖包。
tsconfig.json
tsconfig.json
文件定义了 TypeScript 编译选项。以下是 tsconfig.json
的部分内容:
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考