问题标签 [mikro-orm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1142 浏览

mikro-orm - Mikro-orm 错误:未发现实体“未定义”实体

我该如何修复这个错误

未发现实体“未定义”实体,请确保在初始化 ORM 时在“实体”数组中提供它

0 投票
1 回答
2371 浏览

nestjs - Nest.js + Mikro-ORM:使用 createQueryBuilder 和 leftJoin 时未初始化的实体集合

我正在使用 Nest.js,并考虑从 TypeORM 迁移到 Mikro-ORM。我正在使用该nestjs-mikro-orm模块。但我被困在一些看起来很简单的事情上......

我有 3 个实体AuthorEntityBookEntityBookMetadata。在我的Author模块中,我尝试使用该方法左连接BookBookMetadatacreateQueryBuilder。但是在运行我的查询时,我收到一个错误 where Collection<BookEntity> of entity AuthorEntity[3390] not initialized. 但是,表中的列Author可以很好地检索。

我的 3 个实体:

以及我运行查询的服务文件:

我错过了什么吗?可能不相关,但我也注意到使用 Nest.js 的 TypeORM 用户有一个特殊之处。autoLoadEntities: trueMikro-ORM 有类似的东西吗?谢谢 ;)

0 投票
1 回答
525 浏览

nestjs - 如何在 NestJS 中拆除 MikroOrm

我最近将我的 AppModule 转换为动态模块,以便我能够根据上下文(E2E 测试等)为 MikroOrm 提供不同的配置,它目前看起来像这样:

现在我试图通过断开与数据库的连接来确保应用程序正常关闭,但不确定在这种情况下在哪里放置生命周期挂钩。似乎不可能有一个带有生命周期钩子的动态模块,所以我正在考虑开发一个单独的提供程序来注入 orm 并在其上编写钩子。

什么是正确的方法?谢谢。

编辑:

我想出了以下解决方案。希望有人指出这是否是最好的方法:

0 投票
1 回答
3432 浏览

serialization - NestJS从snake_case到camelCase的序列化

我想为 NestJS 控制器实现 JSON 请求/响应主体的自动序列化/反序列化,准确地说,自动将snake_case请求主体 JSON 键转换为camelCase在我的控制器处理程序处接收,反之亦然。

我发现使用class-transformer's @Expose({ name: 'selling_price' }),如下例所示(我使用的是 MikroORM):

可以看到@Expose注释完美地工作,但更进一步,我希望能够将其转换为实体上的属性名称:sellingPrice,因此我可以将解析的请求正文直接传递给我的服务和我的存储库方法this.recipeRepository.create(data)。当前条件是该sellingPrice字段将为空,因为存在该selling_price字段。如果我不使用@Expose,则需要写入请求 JSON camelCase,这不是我喜欢的。

我可以执行 DTO 和构造函数以及分配字段,但我认为这是相当重复的,并且由于我的命名偏好,我将有很多字段要转换:snake_case在 JSON 和数据库列以及camelCase所有 JS/TS 部分上。

有没有办法可以干净利落地做这个把戏?也许已经有解决方案了。snake_case也许是一个可以全部转换为的全局拦截器,camel_case但我也不确定如何实现一个。

谢谢!

0 投票
1 回答
536 浏览

mikro-orm - 尝试插入具有嵌套父实体的实体时无法插入列“Id”错误

我的 Mikro-Orm (v3.6.15) 模型中有 2 个具有一对多关系的实体(连接到 Postgresql - pg v8.3.0):

乌伊古拉玛(家长)

模块(儿童)

我有一个休息端点(Expressjs)从发布的 Http 请求正文创建 Modul 对象:

当我尝试在下面发布 JSON 对象以创建新的 Modul 时(rootUygulama 对象已经在数据库中):

我得到错误:

当我发送 JSON 如下时,对象已成功创建并插入到数据库中

即使我将空级联数组设置为关系属性存储库,也会尝试插入父对象并失败。

我在配置中遗漏了什么吗?

编辑:

对于我的 Typescript 客户端,我将如何定义 rootUygulama 属性?

应该像

0 投票
1 回答
2148 浏览

node.js - Mikro-orm:如何将查询结果与聚合到自己的实体中?

假设我有一对多UserPost实体。我想用, ,获取用户列表。用于此的 sql 查询如下所示:UserPostidusernamepost_count

我想将此查询的结果提取到它自己的实体中,例如

我怎样才能通过 mikro-orm 做到这一点?

0 投票
3 回答
6639 浏览

node.js - 为 Node.js 选择 ORM 有多难?或者 Node.js 缺乏成熟的 ORM

我有一个生产项目要开发。这是一个电子商务网站。我当前的堆栈:

  1. 节点.js
  2. 打字稿
  3. PostgreSQL

现在我必须为这个项目选择一个 ORM。我想我有两个选择:

  1. 类型ORM。我以前用过这个 ORM。它是一款不错且稳定的软件,但是 TypeORM 有一段时间的维护问题。我不确定这个 ORM 的未来。
  2. MikroORM。TypeORM 缺少一些有用的功能,例如 @Filters(范围)和批量订阅者,而另一方面 MikroORM 具有这些功能或替代品(请参阅过滤器批量订阅者的替代品)。但是 MikroORM 不那么流行并且相对较新。而且 MikroORM 的许多功能仍处于alpha阶段

概括

缺乏维护和功能但稳定的 ORM 或具有良好维护、新功能但未经实战测试的 ORM。哪个选项更好?或者也许有一些替代方案?

0 投票
4 回答
1929 浏览

postgresql - Mikro-orm 错误:用户“postgres”的密码验证失败

我正在尝试沿着这个React GraphQL TypeScript 教程编写代码

该项目使用 MikroOrm 与 PostgreSQL 数据库进行通信。我在我的 Ubuntu 18.04 上安装了 PostgreSQL(12.4),创建了一个“postgres”用户,我可以登录该用户并运行psql没有任何问题。但是,当我开始使用(视频时间戳mikro-orm)之类的命令时,出现以下错误:npx mikro-orm migration:create

这是 PostgreSQL 日志文件中的错误:

这是我的 pg_hba.conf:

我想如果连接是本地的,那么它就不需要密码,但为什么不使用本地套接字呢?如果无法更改,那么我如何为 MikroOrm 提供我的数据库凭据?

0 投票
2 回答
1276 浏览

node.js - mikro-orm CLI:找不到模块“ts-node”

我正在尝试使用 mikro-orm CLI,但出现 ts-node 错误:

我的 package.json 有以下内容:

我目前正在使用“watch”“dev”脚本运行,ts-node 也适用于脚本“start2”

我的文件夹结构是:https ://i.stack.imgur.com/7BGMT.png

这对我来说是新的,我无法弄清楚问题是什么。你知道它可能是什么吗?

谢谢你!

0 投票
2 回答
315 浏览

typescript - MikroORM Typescript 对象中使用的 `!` 运算符是什么?

!在 JS 对象的键声明中,冒号前的语法是什么?

类的 MikroORM 语法