nestjs入门

nestjs入门

nestjs 开发手册

安装

bash
npm i -g @nestjs/cli

创建项目

bash
nest new <project-name>

nestjs 开发依赖

orm - prisma

bash
pnpm add prisma-binding @prisma/client
bash
pnpm add -D prisma

mock 数据

bash
pnpm add mockjs
bash
pnpm add -D @types/mockjs

配置文件

bash
pnpm add @nestjs/config

校验

bash
pnpm add class-validator class-transformer

密码加密

bcrypt 依赖 python 环境

bash
pnpm add bcrypt

或者下载 bcryptjs

bash
pnpm add bcryptjs
bash
pnpm add -D @types/bcryptjs

bcrypt 使用

使用 bcrypt 加密密码

ts
import { hashSync } from "bcryptjs"
// hasnSync(要散列的值,加密等级)
// val ? hashSync(val) : val;

// 对比密码是否一致

jwt

bash
pnpm add @nestjs/jwt
.env
SECRET = 22222
ts
import { JwtModule } from '@nestjs/jwt'

@Global()
@Module({
    imports: [JwtModule.registerAsync({
        useFactory() {
            return {
                secret: process.env.SECRET,
            }
        }
    })],
    providers: [],
    exports: [JwtModule]
})
export class JwtModule {}

passport 验证

安装依赖

bash
pnpm add @nestjs/passport passport passport-local passport-jwt
bash
pnpm add -D @types/passport @types/passport-local @types/passport-jwt

使用

进行登录时的校验并颁发 token

ts
export class LoginDto {
    username: string
    password: string
}
ts
import { Module } from "@nestjs/common"
import { PassportModule } from "@nestjs/passport"
import { AuthController } from "./auth.controller"
import { JwtStrategy } from "./jwt.strategy"
import { LocalStrategy } from "./local.strategy"

@Module({
    imports: [PassportModule],
    controllers: [AuthController],
    providers: [LocalStrategy, JwtStrategy],
})
export class AuthModule {}

token 颁发

bash

日期处理

bash
pnpm add dayjs

swagger 集成

bash
pnpm add
bash
pnpm add prisma-binding @prisma/client mockjs @nestjs/config class-validator class-transformer argon2 @nestjs/passport passport passport-local @nestjs/jwt passport-jwt lodash multer dayjs express redis @nestjs/throttler
bash
pnpm add -D prisma typescript @types/node @types/mockjs @nestjs/mapped-types @types/passport-local @types/passport-jwt @types/express @types/lodash @types/multer @types/node
申请https证书并部署至nginx服务器
视频网站封面图制作

评论区

评论加载中...