@adminjs/typeorm

中文文档
5.0.1发布于 2024/02/14MITTypeScriptES Module零依赖近 30 天下载 5.7万

AdminJS 的 TypeORM 适配器

中文使用文档
文档目录9 节
  1. 管理员类型
  2. 使用量
  3. 示例
  4. 多个“ 一个”
  5. 捐款
  6. 运行示例应用程序
  7. 调取请求
  8. 许可证
  9. 关于 rst. 软件

管理员类型

这是官员 行政部门 集成的适配器 类型ORM (原始内容来自 Arteha/admin-bro-typeorm 阿尔特哈/Admin-bro-typeorm 阿尔特哈/阿特哈/阿特哈/阿特纳-布罗-布罗-多克多克多克多克多克(中文(简体) )

安装 : yarn add @adminjs/typeorm

使用量

插件可以使用标准注册 AdminJS.registerAdapter 方法.

import { Database, Resource } from '@adminjs/typeorm'
import AdminJS from 'adminjs'

AdminJS.registerAdapter({ Database, Resource });

// Optional: if you use class-validator you have to inject this to resource.
import { validate } from 'class-validator'
Resource.validate = validate

示例

import {
  BaseEntity,
  Entity, PrimaryGeneratedColumn, Column,
  ManyToOne,
  RelationId
} from 'typeorm'
import { MyDataSource } from './my-data-source'
import * as express from 'express'
import { Database, Resource } from '@adminjs/typeorm'
import { validate } from 'class-validator'

import AdminJS from 'adminjs'
import * as AdminJSExpress from '@adminjs/express'

Resource.validate = validate
AdminJS.registerAdapter({ Database, Resource })

@Entity()
export class Person extends BaseEntity
{
  @PrimaryGeneratedColumn()
  public id: number;

  @Column({type: 'varchar'})
  public firstName: string;

  @Column({type: 'varchar'})
  public lastName: string;

  @ManyToOne(type => CarDealer, carDealer => carDealer.cars)
  organization: Organization;

  // in order be able to fetch resources in adminjs - we have to have id available
  @RelationId((person: Person) => person.organization)
  organizationId: number;

  // For fancy clickable relation links:
  public toString(): string
  {
    return `${firstName} ${lastName}`;
  }
}

( async () =>
{
  await MyDataSource.initialize();

  const adminJs = new AdminJS({
    // databases: [MyDataSource],
    resources: [
      { resource: Person, options: { parent: { name: 'foobar' } } }
      ],
    rootPath: '/admin',
  })

  const app = express()
  const router = AdminJSExpress.buildRouter(adminJs)
  app.use(adminJs.options.rootPath, router)
  app.listen(3000)
})()

多个“ 一个”

管理者支持 ManyToOne 关系, 但您也必须定义 @ RealationId , 如上例所示 .

捐款

运行示例应用程序

如果您想要在本地设置此程序, 这就是建议的过程 :

  1. 叉子还原
  2. 安装依赖关系
yarn install
  1. 将此软件包登记为(链接软件包)[https://classic.yarnpkg.com/en/docs/cli/link/ (中文(简体) )[ . ]
yarn link
  1. 设置示例应用程序

安装所有依赖和使用先前链接的版本 @adminjs/typeorm。 。 。 .

cd example-app
yarn install
yarn link @adminjs/typeorm

可以选择,您可能想要链接您的本地版本 adminjs 软件包

  1. 确定您拥有所有嵌入( 定义在 example-app/ormconfig.js(中文(简体) )

  2. 以监视模式构建软件包

(在根文件夹中)

yarn dev
  1. 在 dev 模式下运行应用程序
cd example-app
yarn dev

调取请求

在你做公关之前 确定所有的测试都通过 并且代码不会引起错误. 你可以通过运行来做到这一点:

yarn lint
yarn test

或带有适当的嵌入: POSTGRES_USER=yourtestuser POSTGRES_DATABASE="database_test" yarn test

许可证

AdminJS拥有2023rst.software的版权. 它是一种自由软件,可按下列规定重新分配: 自由主义 文档.

关于 rst. 软件

我们是一个开放、友好的团队.

  • 我们随时可以 雇用。 。 。 .
  • 如果你想为我们工作.. 职业页面。 。 。 .

版本与发布记录

@adminjs/typeorm 共发布 15 个版本,首次发布于 2021/06/19;过去 12 个月发布了 0 个版本。

版本发布日期距今
5.0.1latest2024/02/142 年前
5.0.02023/04/183 年前
5.0.0-beta.1beta2023/03/203 年前
4.0.02022/07/134 年前
3.0.22022/06/244 年前
3.0.12022/06/234 年前

关于 @adminjs/typeorm 的常见问题

@adminjs/typeorm 是什么?

AdminJS 的 TypeORM 适配器

如何安装 @adminjs/typeorm?

在项目目录运行 npm install @adminjs/typeorm,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:adminjs(^7.0.0)、typeorm(~0.3.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@adminjs/typeorm 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adminjs/typeorm 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adminjs/typeorm 可以商用吗?

@adminjs/typeorm 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@adminjs/typeorm 的下载量有多少?

根据 npm 官方下载统计,@adminjs/typeorm 在 2026/10/05 – 2026/11/03 这 30 天内被下载 56,727 次,日均约 1,891 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adminjs/typeorm 还在维护吗?

最新版本 5.0.1 发布于 2024/02/14(2 年前);至今共发布 15 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/06/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。