基于 Koa + Typescript + Mysql 创建
首先要安装 node
npm i -g pnpm
pnpm i
pnpm start
.
├── public # 静态资源
├── prisma # 数据库配置文件
├── src # 源码目录
│ ├── app # 项目框架启动
│ ├── constants # 配置常量
│ ├── controller # 控制器
│ ├── db # 数据库启动器
│ ├── router # 路由
│ ├── logs # 日志
│ ├── services # 服务
│ ├── middleware # 中间件
│ ├── redis # redis服务
│ ├── utils # 工具类
│ ├── index.ts # 入口文件
│ └── type.ts # 类型声明文件
└── tsconfig.json # typescript 配置文件
pnpm start
pnpm build
#生成私钥
openssl genrsa -out private_key.pem 1024
#生成私钥对应的共钥
openssl rsa -in private_key.pem -pubout -out public_key.pem
pnpm i prisma -D
pnpm i @prisma/client
prisma:是 cli 工具为了执行npx prisma generate
命令用于自动生成数据库表的 model 类型,且连接数据库;
@prisma/client:用于查询、操作数据库;
在项目中执行如下步骤
## 自动生成.env 和.prisma配置文件
npx prisma init
## 拉取数据库表的类型,会自动写入在.prisma文件中
npx prisma db pull
## 根据.prisma文件的表类型生成对应的client可操作类型
npx prisma generate
.env 的配置文件以 mysql 为例
/**
mysql: 数据库类型
root: 数据库账号
12345678: 数据库密码
my_db_admin: 数据库名称
localhost: 本地数据库启动的域名,线上的数据库域名可替换
3306: 端口
*/
DATABASE_URL = "mysql://root:12345678@localhost:3306/my_db_admin";
配置redis环境变量
REDIS_URL=redis://127.0.0.1:6379
其他数据库类型的连接方式可参考 这里
// 在.prisma配置文件中配置
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql" // 数据库类型
url = env("DATABASE_URL")
}
import { PrismaClient, users } from "@prisma/client";
const prisma = new PrismaClient();