UNPKG

@zenweb/repositories

Version:

Zenweb ORM Repositories module

106 lines (83 loc) 2.26 kB
# ZenWeb ORM Repositories module [ZenWeb](https://www.npmjs.com/package/zenweb) [ZenORM](https://www.npmjs.com/package/zenorm) ZenORM Repositories 集成 - 此项目通常配合 [@zenweb/tenant](https://www.npmjs.com/package/@zenweb/tenant) 多租户支持 ## 安装 ```bash # 生产依赖 npm install zenorm @zenweb/mysql @zenweb/repositories # 开发依赖 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 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, })); ``` 代码中调用 ```ts title="src/controller/test.ts" import { mapping, Context } from 'zenweb'; export class TestController { @mappping() dbtest(ctx: Context) { const { UserRepository } = ctx.repositories; return UserRepository.find({ id: 1 }).get(); } } ```