当前位置: 首页 > wzjs >正文

mg动画制作软件的搜索引擎优化

mg动画制作软件,的搜索引擎优化,做php网站用的软件,b2b性质网站怎么进行推广上一篇我们已经安装好了nestjs,可以在浏览器看到hello,world的结果。接着我们就要熟悉一下如何使用nestjs开发后台API了。本篇介绍如何用提示词一步步的搭建。 1 安装依赖 打开我们的trae,在对话框里输入如下提示词 帮我安装 bcrypt 以及 jwt 认证相关…

上一篇我们已经安装好了nestjs,可以在浏览器看到hello,world的结果。接着我们就要熟悉一下如何使用nestjs开发后台API了。本篇介绍如何用提示词一步步的搭建。

1 安装依赖

打开我们的trae,在对话框里输入如下提示词

帮我安装 bcrypt 以及 jwt 认证相关依赖

在这里插入图片描述

2 创建用户模块

使用如下命令创建一个用户模块

npx --yes @nestjs/cli g module users

命令执行完毕后,可以在大纲树里看到多了一个users文件夹,里边多了一个users.model.ts
在这里插入图片描述

3 创建DTO对象

输入如下提示词,让ai帮我们生成文件

生成两个 DTO 用于用户注册和登录。分别为 RegisterDto 和 LoginDto,包含必要的字段

在这里插入图片描述
生成的代码有报错,鼠标移动到出错的位置上,点击AI修复,让AI自动修复。这里AI给出的建议是安装必要的依赖

npm install class-validator --save

在终端安装好依赖我们的代码就不报错了
在这里插入图片描述
login.dto.ts

import { IsNotEmpty, IsString, MinLength } from 'class-validator';export class LoginDto {@IsNotEmpty({ message: '用户名不能为空' })@IsString({ message: '用户名必须是字符串' })username: string;@IsNotEmpty({ message: '密码不能为空' })@IsString({ message: '密码必须是字符串' })@MinLength(6, { message: '密码长度不能少于6个字符' })password: string;
}

register.dto.ts

import { IsEmail, IsNotEmpty, IsString, MinLength } from 'class-validator';export class RegisterDto {@IsNotEmpty({ message: '用户名不能为空' })@IsString({ message: '用户名必须是字符串' })username: string;@IsNotEmpty({ message: '邮箱不能为空' })@IsEmail({}, { message: '请输入有效的邮箱地址' })email: string;@IsNotEmpty({ message: '密码不能为空' })@IsString({ message: '密码必须是字符串' })@MinLength(6, { message: '密码长度不能少于6个字符' })password: string;
}

4 创建用户实体(User Entity)与服务

我们目前不集成数据库,使用数组来存储用户的数据

4.1 创建实体

输入如下提示词

帮我创建一个用户的实体

在这里插入图片描述
文件生成后依然是有报错的,上边已经有了方案,我们需要把自动生成的代码依赖的包安装一下

npm install typeorm --save
npm install @nestjs/typeorm --save

4.2 创建 UsersService

在终端里输入如下命令创建UsersService

npx --yes @nestjs/cli g service users 

在这里插入图片描述
业务逻辑我们也使用提示词进行生成,输入如下提示词

users.service.ts 完善一下这个类,实现一下用户的注册、登录功能,包含必要的校验逻辑,使用数组存储数据

这里要说明的是,因为文件已经创建了,我们可以使用引用的模式告诉大模型我要写入哪个文件

在这里插入图片描述
users.service.ts

import { Injectable, ConflictException, UnauthorizedException } from '@nestjs/common';
import * as bcrypt from 'bcrypt';
import { User } from './entities/user.entity';
import { RegisterDto } from './dto/register.dto';
import { LoginDto } from './dto/login.dto';@Injectable()
export class UsersService {private users: User[] = [];async register(registerDto: RegisterDto): Promise<User> {const { username, email, password } = registerDto;// 检查用户名是否已存在const existingUsername = this.users.find(user => user.username === username);if (existingUsername) {throw new ConflictException('用户名已存在');}// 检查邮箱是否已存在const existingEmail = this.users.find(user => user.email === email);if (existingEmail) {throw new ConflictException('邮箱已被注册');}// 创建新用户const user = new User();user.username = username;user.email = email;user.password = await bcrypt.hash(password, 10);this.users.push(user);return user;}async login(loginDto: LoginDto): Promise<User> {const { username, password } = loginDto;// 查找用户const user = this.users.find(user => user.username === username);if (!user) {throw new UnauthorizedException('用户名或密码错误');}// 验证密码const isPasswordValid = await bcrypt.compare(password, user.password);if (!isPasswordValid) {throw new UnauthorizedException('用户名或密码错误');}return user;}
}

5 创建认证服务(AuthService)

接下来,我们创建一个用于处理登录、生成 JWT 的认证服务。我们创建一个新的模块auth模块来搭建对应的服务,在终端输入如下命令来创建模块

npx --yes @nestjs/cli g module auth

在这里插入图片描述
然后再创建相应的service

npx --yes @nestjs/cli g service auth

然后让大模型帮你完善一下service的逻辑
auth.module.ts

import { Module } from '@nestjs/common';
import { JwtModule } from '@nestjs/jwt';
import { AuthService } from './auth.service';
import { UsersModule } from '../users/users.module';
import { jwtConstants } from './constants';@Module({imports: [UsersModule,JwtModule.register({secret: jwtConstants.secret,signOptions: { expiresIn: jwtConstants.expiresIn },}),],providers: [AuthService],exports: [AuthService],
})
export class AuthModule {}

auth.service.ts

import { Injectable, UnauthorizedException } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { UsersService } from '../users/users.service';
import { LoginDto } from '../users/dto/login.dto';@Injectable()
export class AuthService {constructor(private usersService: UsersService,private jwtService: JwtService,) {}async login(loginDto: LoginDto) {const user = await this.usersService.login(loginDto);const payload = { username: user.username, sub: user.id };return {access_token: this.jwtService.sign(payload),};}
}

constants.ts

export const jwtConstants = {secret: 'your-secret-key',  // 在生产环境中应该使用环境变量expiresIn: '1h',  // token过期时间
};

6 创建 Auth 控制器(AuthController)

在终端输入如下命令,来创建controller

npx --yes @nestjs/cli g controller auth

在这里插入图片描述
创建好之后要求大模型完善逻辑,限定dto使用现有的不要新建

完善一下代码,dto用我已经创建好的register和login不要新建

在这里插入图片描述

7 将模块集成到应用中

确保在主模块(通常为 app.module.ts)中引入了 AuthModule,这样认证相关的路由才能生效。输入如下提示词

在主模块中引入auth模块

8 测试接口

让大模型来帮我们生成测试脚本,输入如下提示词

帮我写个简易的测试脚本,用于测试 /auth/register 和 /auth/login 接口

他会自动创建脚本
在这里插入图片描述
脚本创建好之后可以输入如下命令来执行自动测试

npm run test:e2e
http://www.dtcms.com/wzjs/491471.html

相关文章:

  • 找合伙做网站的厦门人才网最新招聘信息网
  • 无锡便宜做网站自己接单的平台
  • 如何请人创建一个网站seo是哪个英文的简写
  • 甘肃省路桥建设集团网站新乡seo推广
  • 做供应商在什么网站找可靠正规seo大概多少钱
  • wordpress图片目录下移动端排名优化软件
  • 徐州手机网站开发公司代理推广
  • 济南做网站互联网公司排名seo网站优化工具
  • 室内设计公司 网站建设乐陵seo外包
  • 淘宝客的网站怎么做的上海还能推seo吗
  • 昆山城市建设网站国际网络销售平台有哪些
  • 规范网络直播平台的可行性建议seo优化培训机构
  • 给前端做网站的图片叫什么软件外贸网站建设流程
  • 织梦建设网站需要什么软件seo网络推广经理
  • 展开网站建设网络营销公司排行榜
  • 做网站老板不发工资我拿尾款电商平台怎么运营的
  • 做网站国外访问东莞网站营销推广
  • 嵊州市网站建设友情链接交换形式
  • 创网站 灵感百度域名收录提交入口
  • 服装手机商城网站建设网站建设的流程是什么
  • 豫港大厦 做网站seo关键词排名报价
  • 手机做网站空间360搜索首页
  • wordpress仿站博客视频教程打广告去哪个平台
  • 上线了 建立网站西安网站建设优化
  • 代理加盟微信网站建设郑州竞价代运营公司
  • 云南响应式网站建设seo服务顾问
  • 电子商务网站建设毕业论文抖音seo推广
  • 网站建设的基本流程是什么百度一下百度首页官网
  • 视觉传达设计公司排名前十强慧达seo免登录发布
  • 做美国代购的都从哪个网站买南昌seo优化