1.1.32 • Published 8 months ago

@braken/typeorm v1.1.32

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

@braken/typeorm

Braken 框架的 TypeORM 集成模块,提供数据库连接和事务支持。

安装

pnpm add @braken/typeorm

特性

  • TypeORM 连接管理
  • 数据库事务支持
  • 连接配置支持
  • 错误处理
  • 优雅关闭
  • 依赖注入集成

使用示例

import { Application } from '@braken/application';
import TypeORM from '@braken/typeorm';

// 配置数据库连接
TypeORM.set({
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: 'password',
  database: 'test',
  entities: [User, Order],
  synchronize: true
});

// 使用数据库
@Application.Injectable
class MyService {
  @Application.Inject(TypeORM)
  private readonly typeorm: TypeORM;

  async createUser(data: any) {
    // 使用事务
    return this.typeorm.transaction(async (runner, rollback) => {
      // 创建用户
      const user = await runner.manager.save(User, data);

      // 创建订单
      const order = await runner.manager.save(Order, {
        userId: user.id,
        amount: 100
      });

      // 如果出错,回滚事务
      rollback(() => {
        console.log('Transaction rolled back');
      });

      return { user, order };
    });
  }
}

API

TypeORM 类

主要的数据库客户端类,提供以下功能:

  • TypeORM 连接管理
  • 数据库事务支持
  • 连接配置支持
  • 错误处理
  • 优雅关闭
  • 依赖注入集成

静态方法

set

设置数据库配置:

static set(options: DataSourceOptions)

transaction

执行事务:

static async transaction<T>(
  datasource: DataSource,
  callback: (
    runner: QueryRunner,
    rollback: (roll: () => unknown | Promise<unknown>) => number
  ) => Promise<T>
)

实例属性

connection

数据库连接实例:

public connection: DataSource

实例方法

transaction

执行事务:

transaction<T>(
  callback: (
    runner: QueryRunner,
    rollback: (roll: () => unknown | Promise<unknown>) => number
  ) => Promise<T>
)

terminate

终止连接:

async terminate()

配置选项

interface DataSourceOptions {
  type: 'mysql' | 'postgres' | 'sqlite' | 'mariadb' | 'mssql';
  host?: string;
  port?: number;
  username?: string;
  password?: string;
  database?: string;
  entities?: any[];
  synchronize?: boolean;
  // ... 更多选项
}

实现细节

  • 使用 TypeORM 实现连接
  • 支持数据库事务
  • 支持连接配置
  • 自动错误处理
  • 优雅关闭支持
  • 依赖注入集成

注意事项

  • 需要正确配置连接参数
  • 处理事务回滚
  • 管理连接状态
  • 处理连接错误
  • 优化查询性能

依赖注入

@Application.Injectable
class MyService {
  @Application.Inject(TypeORM)
  private readonly typeorm: TypeORM;
}

许可证

MIT

1.1.32

8 months ago

1.1.16

1 year ago

1.1.15

1 year ago

1.1.10

1 year ago

1.1.9

1 year ago

1.1.0

1 year ago

1.0.27

1 year ago

1.0.20

1 year ago

1.0.4

1 year ago

1.0.2

1 year ago