# nest-server **Repository Path**: sk20020228/nest-server ## Basic Information - **Project Name**: nest-server - **Description**: nestjs个人练习demo - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-19 - **Last Updated**: 2025-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nodejs ## README # Nestjs后端服务项目 > 初次使用nest制作的后端服务 ## 当前功能 - 文件上传 - 用户CRUD - 角色CRUD - 默认用户和角色生成 - 日志记录 - 生成接口文档(swagger和knife4j) - 连接数据库mysql和sqlite - 统一响应 - 错误响应处理 - 表单校验 - 密码加密 - jwt(请求头或cookie) - nodejs生成文件结构 ## 当前文件结构如下 ``` nest-server/ ├── knife4j knife4j前端Vue2版本打包后的代码,目前没有设置请求前缀 ├── sqlitedata/ sqlitedb的数据库,由于部分情况没有MySQL环境还是要这个进行开发测试 │ └── nest.db ├── src/ │ ├── common/ 公共模块 │ │ ├── entities/ 抽离的实体对象 │ │ │ └── base.ts 实体对象基本都需要的基础字段 │ │ ├── filters/ 过滤器 │ │ │ └── multer.ts 文件上传报错的自定义过滤器方便自定义描述 │ │ └── utils/ 工具函数 │ │ ├── crypto.ts 加密解密函数 │ │ └── result.ts 自定义通用返回函数 │ ├── config/ 配置文件 │ │ ├── multer.ts 文件上传的配置 │ │ ├── swagger.ts 生成接口文档的配置 │ │ └── whiteList.ts jwt白名单 │ ├── module/ 业务模块 │ │ ├── auth/ jwt模块 │ │ │ ├── auth.middleware.ts │ │ │ ├── auth.module.ts │ │ │ └── auth.strategy.ts │ │ ├── defaultData/ 默认数据 │ │ │ ├── defaultData.module.ts │ │ │ └── defaultData.service.ts │ │ ├── knife4j/ knife4j接口以及尽头文件指定地址 │ │ │ ├── knife4j.controller.ts │ │ │ ├── knife4j.module.ts │ │ │ └── knife4j.service.ts │ │ ├── logger/ 日志 │ │ │ ├── dto/ │ │ │ ├── entities/ │ │ │ ├── logger.controller.ts │ │ │ ├── logger.middleware.ts │ │ │ ├── logger.module.ts │ │ │ └── logger.service.ts │ │ ├── roles/ 角色 │ │ │ ├── dto/ │ │ │ ├── entities/ │ │ │ ├── roles.controller.ts │ │ │ ├── roles.module.ts │ │ │ └── roles.service.ts │ │ ├── upload/ 文件上传 │ │ │ ├── dto/ │ │ │ ├── entities/ │ │ │ ├── tus.controller.ts tus大文件上传 │ │ │ ├── upload.controller.ts │ │ │ ├── upload.module.ts │ │ │ └── upload.service.ts │ │ └── users/ 角色 │ │ ├── dto/ │ │ ├── entities/ │ │ ├── users.controller.ts │ │ ├── users.module.ts │ │ └── users.service.ts │ ├── app.module.ts 根模块 │ └── main.ts 入口文件 ├── types/ │ └── express.d.ts ├── uploads/ 文件上传存储地址 ├── .env.development 开发环境 ├── .env.production 生成环境 ├── .env.sqlitedb 开发环境使用sqlitedb数据库 ├── .eslintrc.js ├── LICENSE ├── nest-cli.json ├── package-lock.json ├── package.json ├── README.md ├── tsconfig.build.json └── tsconfig.json ``` ## 拉取项目 ```bash git clone https://gitee.com/sk20020228/nest-server.git ``` ## 安装nestjs脚手架 ```bash npm i -g @nestjs/cli ``` ## 安装依赖 ```bash yarn ``` OR ```bash npm i ``` ## 运行 > 增加了几种运行的环境 1. 没有数据库 ```bash npm run start:sqlitedb ``` 2. 开发环境 ```bash npm run start ``` 3. 生产环境 ```bash npm run build npm run start:prod ``` 运行成功控制台打印 ```bash server to http://localhost:3000 swagger to http://localhost:3000/swagger knife4j to http://localhost:3000/api/doc?v=1 ```