UNPKG

@zenweb/orm

Version:

Zenweb ORM module

104 lines (82 loc) 2.02 kB
# ZenWeb ORM module [ZenWeb](https://www.npmjs.com/package/zenweb) [ZenORM](https://www.npmjs.com/package/zenorm) ZenORM Repositories 集成 ## 安装 ```bash npm install @zenweb/mysql @zenweb/orm npm install @zenorm/generate @zenorm/generate-mysql --save-dev ``` ## 配置 在 `package.json` 的 `scripts` 中增加如下代码,用于执行 `dbgen` 命令 ```json title="package.json" { "scripts": { "dbgen": "zenorm-generate .dbgen.json" } } ``` 创建文件 `.dbgen.json` 用于生成数据库结构代码时连接到指定数据库 *提示:运行时并不使用此配置* ```json title=".dbgen.json" { "host": "localhost", "port": 3306, "user": "root", "password": "", "database": "zenorm_test", "outputDir": "./model", "generateRepositories": true, "declareRepositoriesToModules": [ "@zenweb/core.Core.repositories" ] } ``` ### 生成数据库结构代码 运行命令开始生成数据库结构代码 ```bash npm run dbgen ``` ## 项目配置 编辑项目入口代码 `src/index.ts` ```ts title="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, })); ``` 代码中调用 ```ts title="src/controller/test.ts" import { mapping } from 'zenweb'; export class TestController { @mappping() dbtest(core: Core) { const { UserRepository } = core.repositories; return UserRepository.find({ id: 1 }).get(); } } ```