# 后端指南
# 目录结构
# 使用指南
因为我们的项目依赖于 Redis
和 MySQL
,所以我们在本机启动项目时需要首先启动这两个服务,如果还没有安装的同学请先去安装。
如果你熟悉 docker
,那么还是建议你使用 docker
安装。
# 安装依赖
# 本地安装
# 安装 Redis
mac` 同学如果安装了 `homebrew` 直接 `brew install redis
1
# 启动Redis
命令行中输入 redis-server
,redis
就启动成功了,如果你嫌麻烦也可以设置为开机启动
# 安装依赖
# 本地安装
# 安装 Redis
mac` 同学如果安装了 `homebrew` 直接 `brew install redis
1
# 启动Redis
命令行中输入 redis-server
,redis
就启动成功了,如果你嫌麻烦也可以设置为开机启动
# 安装 Docker 客户端
# 拉取 Redis 和 MySQL 镜像
docker pull redis
docker pull mysql
1
2
2
# 启动 Redis 和 MySQL 容器
Redis:
docker run -d -p 6379:6379 --name redis redis
1
MySQL :
docker run --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=tutulist -e MYSQL_DATABASE=tutulist_dev mysql
1
添加 -e
参数,配置环境变量
MYSQL_ROOT_PASSWORD
设置 root 用户的密码MYSQL_DATABASE
初始化创建一个数据库,数据库名称为tutulist_dev
# 运行项目
# 创建 .env 文件
SMS_SECRET_ID=腾讯云 secret id
SMS_SECRET_KEY=腾讯云 secret key
SMS_SIGN_NAME=sms 签名名称
SMS_SDK_APP_ID=sms 应用 id
DATABASE_NAME=数据库名称
DATABASE_USERNAME=用户名
DATABASE_PASSWORD=密码
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 配置 config.default.ts 文件
jwt
- secret 密钥
- expiresIn: token 失效时间
- refreshExpiresIn:refresh token 失效时间
typeorm
- database 数据库名称
- username 数据库用户名
- password 数据库密码
cos
- 腾讯云 cos 相关密钥
- 访问管理 -> 访问密钥 -> API 密钥管理
redis
- 使用 6379 默认端口号
import { MidwayConfig } from '@midwayjs/core';
// 本地环境配置
export default {
// use for cookie sign key, should change to your own and keep security
keys: '1659760140542_6750',
koa: {
globalPrefix: '/api',
port: 7001,
},
jwt: {
secret: 'your secret', // fs.readFileSync('xxxxx.key')
expiresIn: '2d', // https://github.com/vercel/ms
refreshExpiresIn: '4d',
},
typeorm: {
dataSource: {
default: {
type: 'mysql',
host: '127.0.0.1',
port: 3306,
database: process.env.DATABASE_NAME,
username: process.env.DATABASE_USERNAME,
password: process.env.DATABASE_PASSWORD,
synchronize: true,
// 根据路径,装配实体类,注意,这里和常见的 typeorm 等扫描路径不同,entities 的路径不需要写 .ts 后缀
entities: ['/entity'],
},
},
},
cos: {
client: {
SecretId: 'SecretId',
SecretKey: 'SecretKey',
Bucket: 'cos bucket 名称',
},
},
redis: {
// 单客户端配置
client: {
port: 6379,
host: '127.0.0.1', // Redis host
db: 0,
},
},
// 默认会将登录的 user 信息写入 session,将其关闭
passport: {
session: false,
},
i18n: {
defaultLocale: 'zh_CN',
},
} as MidwayConfig;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 客户端工具
# VS Code 插件
# Redis
https://marketplace.visualstudio.com/items?itemName=cweijan.vscode-redis-client
# MySQL
https://marketplace.visualstudio.com/items?itemName=cweijan.vscode-mysql-client2
# Navicat Premium
https://www.navicat.com/en/