ACK NestJs Boilerplate 使用教程
项目介绍
ACK NestJs Boilerplate 是一个基于 NestJs v10 的样板项目,采用了 Repository Design Pattern 和 MongoDB (Mongoose) 进行容器化。该项目旨在为后端服务提供一个高效、可扩展的起点,特别适用于需要认证和授权服务的场景。
项目快速启动
克隆项目
首先,克隆项目到本地:
git clone https://github.com/andrechristikan/ack-nestjs-boilerplate.git
cd ack-nestjs-boilerplate
安装依赖
使用 Yarn 安装项目依赖:
yarn install
配置环境变量
复制 .env.example
文件并命名为 .env
,然后根据需要修改环境变量。
启动项目
使用以下命令启动项目:
yarn start:dev
项目启动后,可以通过 http://localhost:3000
访问。
应用案例和最佳实践
认证服务
ACK NestJs Boilerplate 提供了一个强大的认证服务,支持 JWT 认证和角色基础的访问控制。以下是一个简单的用户注册和登录示例:
用户注册
curl -X POST http://localhost:3000/auth/register -H "Content-Type: application/json" -d '{"username": "user", "password": "password"}'
用户登录
curl -X POST http://localhost:3000/auth/login -H "Content-Type: application/json" -d '{"username": "user", "password": "password"}'
最佳实践
- 模块化设计:将功能模块化,便于维护和扩展。
- 安全性:使用 JWT 进行认证,确保用户数据的安全。
- 日志记录:集成日志记录功能,便于调试和监控。
典型生态项目
Kafka Microservice
ACK NestJs Boilerplate 可以与 Kafka 微服务集成,实现更复杂的业务逻辑。以下是一个简单的 Kafka 消费者示例:
import { Controller, Get } from '@nestjs/common';
import { KafkaService } from './kafka.service';
@Controller('kafka')
export class KafkaController {
constructor(private readonly kafkaService: KafkaService) {}
@Get('consume')
async consume() {
return this.kafkaService.consume('topic-name');
}
}
MongoDB 集成
项目默认使用 MongoDB 作为数据库,以下是一个简单的 Mongoose 模型示例:
import { Schema, Prop, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';
@Schema()
export class User extends Document {
@Prop({ required: true })
username: string;
@Prop({ required: true })
password: string;
}
export const UserSchema = SchemaFactory.createForClass(User);
通过以上模块的介绍和示例,您可以快速上手并深入了解 ACK NestJs Boilerplate 的使用和扩展。