1.安装nestjs 框架,新建工程 project-name
cnpm install -g @nestjs/cli
nest new project-name
2.进入项目 cnpm run start:dev 运行项目
3.创建代码
nest g resource data-priviter/user //创建一个user 代码
访问 http://localhost:3000/user 到指定路由的控制器
4.创建项目所需包
cnpm install @nestjs/config// 安装NestJS 中安全高效的管理 Config 全局配置文件
cnpm install @nestjs/jwt //安装权限控制
cnpm install uuid //安装通用唯一识别码
cnpm install class-validator //安装数据验证
cnpm install socket.io //安装基于websocket封装的一个库
cnpm install @nestjs/platform-socket.io //安装nest 使用socket.io 的适配器
cnpm install @nestjs/websockets //安装WebSocket 模块,用于处理 WebSocket 相关的逻辑
cnpm install express-session //安装session包
cnpm install --save-dev @types/express-session //安装ts代码提示
cnpm install svg-captcha//安装包
cnpm install --save-dev @types/@svg-captcha //安装ts代码提示
cnpm install --save-dev @types/multer //安装文件上传ts代码提示
5.安装orm框架prisma
cnpm install prisma --save-dev
nestjs 使用 prisma 安装客户端工具
cnpm install @prisma/client
初始化Prisma会生成prisma/schema.prisma 文件
prisma init
连接数据库 prisma/schema.prisma 文件
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
parentId Int?
// parent User? @relation("BlogOwnerHistory1", fields: [parentId], references: [id])
// self User[] @relation("BlogOwnerHistory1")
name String
password String
addTime DateTime
loginTime DateTime
loginCount Int
rolesId Int
roles Roles @relation(fields: [rolesId], references: [id])
email String
permissions UsersOnPermissions[]
online Online?
}
model Roles{
id Int @id @default(autoincrement())
name String
users User[]
}
model Permission{
id Int @id @default(autoincrement())
name String
users UsersOnPermissions[]
}
model UsersOnPermissions {
userId Int
users User @relation(fields: [userId], references: [id])
permissionId Int
permission Permission @relation(fields: [permissionId], references: [id])
@@id([userId, permissionId])
}
model Online{
id Int @id @default(autoincrement())
userId Int @unique//使用属性来标记字段@unique,以保证只有一个User连接到每个Online。
loginTime DateTime
user User @relation(fields: [userId], references: [id])
}
将 Prisma 模型推送到数据库
prisma db push
生成SQL迁移文件
prisma migrate dev
重新生成 Prisma 客户端
prisma generate
这将根据你最新的 schema 文件生成新的客户端代码。