@zenweb/orm
v3.1.0
Published
Zenweb ORM module
Downloads
5
Maintainers
Readme
ZenWeb ORM module
ZenORM Repositories 集成
安装
npm install @zenweb/mysql @zenweb/orm
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 modORM from '@zenweb/orm';
import { Repositories } from './model';
export const app = create();
// 安装 MySQL 支持
app.setup(modMySQL({
pools: {
// 这里的数据库配置用于运行时
MASTER: {
host: 'localhost',
port: 3306,
user: 'root',
password: '',
database: 'test',
charset: 'utf8mb4',
timezone: '+08:00',
},
// 如果使用集群,主从分离等场景可以继续添加
// SLAVE1: {} ...
}
}));
// 设置 ORM
app.setup(modORM({
coreQuery: () => app.mysql!,
// contextQuery: (ctx) => app.mysql,
Repositories,
}));
代码中调用
import { mapping } from 'zenweb';
export class TestController {
@mappping()
dbtest(core: Core) {
const { UserRepository } = core.repositories;
return UserRepository.find({ id: 1 }).get();
}
}