@zenweb/repositories
v3.0.0
Published
Zenweb ORM Repositories module
Downloads
18
Maintainers
Readme
ZenWeb ORM Repositories module
ZenORM Repositories 集成 - 此项目通常配合 @zenweb/tenant 多租户支持
安装
# 生产依赖
npm install zenorm @zenweb/mysql @zenweb/repositories
# 开发依赖
npm install @zenorm/generate @zenorm/generate-mysql --save-dev
配置
在 package.json
的 scripts
中增加如下代码,用于执行 dbgen
命令
{
"scripts": {
"dbgen": "zenorm-generate .dbgen.json"
}
}
创建文件 .dbgen.json
用于生成数据库结构代码时连接到指定数据库
提示:运行时并不使用此配置
{
"host": "localhost",
"port": 3306,
"user": "root",
"password": "",
"database": "zenorm_test",
"outputDir": "./model",
"generateRepositories": true,
"declareRepositoriesToModules": [
"@zenweb/core.Core.repositories"
]
}
生成数据库结构代码
运行命令开始生成数据库结构代码
npm run dbgen
项目配置
编辑项目入口代码 src/index.ts
import { create } from 'zenweb';
import modMySQL from '@zenweb/mysql';
import modRepositories from '@zenweb/repositories';
import { Repositories } from './model';
export const app = create();
app.setup(modMySQL({
pools: {
// 数据库服务器设置
MASTER: {
host: '127.0.0.1',
port: 3306,
user: 'root',
password: '123456',
database: 'zenorm_test',
charset: 'utf8mb4',
timezone: '+08:00',
connectionLimit: 100,
},
},
// 使用 Context 初始化连接池
withContext: true,
}));
// 设置 ORM
app.setup(modRepositories({
contextQuery: (ctx) => ctx.mysql,
Repositories,
}));
代码中调用
import { mapping, Context } from 'zenweb';
export class TestController {
@mappping()
dbtest(ctx: Context) {
const { UserRepository } = ctx.repositories;
return UserRepository.find({ id: 1 }).get();
}
}