Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: tiny-cli部分问题修改&优化 #209

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 52 additions & 2 deletions docs/tiny-nest.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
# TinyPro 后端部署指南

## 视频教程

[OpenTiny社区](https://space.bilibili.com/15284299)

## 相关术语

### 用户

登陆账号的人

### 角色

权限的集合体,为了方便的进行权限管理

### Guard

门禁/门卫,可以理解为一个中间件。请求会先经过Guard而后才会经过Controller。在代码中体现则是一个实现了`CanActivate`接口的类。

### 受保护的接口

如果一个接口需要登录/需要进行权限校验,那么我们称作这个接口是受保护的接口

### 公开接口

如果一个接口不需要登录/不会进行权限校验,那么我们称作这个接口是公开接口


## 环境准备

请确保您安装了`nodejs`, `npm`, `tiny-cli`
Expand Down Expand Up @@ -37,7 +64,7 @@ https://www.opentiny.design/tiny-cli/docs/toolkits/pro#database):
│ ├── db 数据库连接
│ ├── models 数据库结构
│ └── redis redis链接
├── locales.json 国际化数据库初始化我呢见
├── locales.json 国际化数据库初始化文件
├── src 源码
├── app.module.ts
├── auth 鉴权接口
Expand Down Expand Up @@ -88,6 +115,8 @@ PAGINATION_LIMIT = 10

## 快速上手

**为了安全起见`DATABASE_SYNCHRONIZE`默认为`false`, 如果默认为`true` `TypeOrm`可能会删除数据库下的所有数据。**

### Docker

```bash
Expand All @@ -98,8 +127,12 @@ PAGINATION_LIMIT = 10
docker compose up -d
```

**注意,请将后端文件`.env`中的`DATABASE_HOST`改为数据库的容器名,`REDIS_HOST`改为redis容器名。`DATABASE_PORT`改为docker数据库对外暴露的端口号,`REIDS_PORT`改为docker数据库对外暴露的端口号**

### 命令启动

**在运行前,请您确保`mysql`, `redis`均在运行中,且请您确保`.env`文件中`DATABASE_NAME`配置项指明的数据库存在。**

```bash
npm i
npm run start
Expand All @@ -113,7 +146,13 @@ npm run start

### 权限控制

如果一个接口没有被`Permission`修饰器进行修饰, 那么这个接口是允许所有已登录用户访问的,如果该接口被`Permission`修饰器进行修饰,那么该接口只允许拥有该权限的用户访问,其余用户则会返回`403`错误代码
如果一个接口没有被`Permission`修饰器进行修饰, 那么这个接口是允许所有已登录用户访问的,如果该接口被`Permission`修饰器进行修饰,那么该接口只允许拥有该权限的用户访问,其余用户则会返回`403`错误代码.

相关代码

- `nestJs/src/permission/permission.guard.ts`

默认存在超级权限`(*)`, 该权限可以在登陆后访问任何接口

## 新增接口

Expand Down Expand Up @@ -153,9 +192,20 @@ docker build -t tinypro:latest .
npm run build
```

## 遇到困难?

加官方小助手微信 opentiny-official,加入技术交流群

## 常见问题

### 提示 `Lock file exists, if you want init agin, please remove dist or dist/lock`

为了避免重复初始化,系统会在第一次初始化的时候在`dist`目录下新建`app/lock`文件,如果您需要再次初始化,那么请您删除`dist/app`或者直接删除`dist`文件夹

### docker 部署时数据库超时

`docker-compose.yaml`实际上配置了`depends_on`字段,但`mysql`镜像并没有提供对应的健康检查。如果服务挂掉,可以等待`mysql`启动成功后手动重启后端服务

### 打包速度慢

请阅读[SWC](https://docs.nestjs.com/recipes/swc)
Loading