问题标签 [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.
mikro-orm - Mikro-orm 错误:未发现实体“未定义”实体
我该如何修复这个错误
未发现实体“未定义”实体,请确保在初始化 ORM 时在“实体”数组中提供它
nestjs - Nest.js + Mikro-ORM:使用 createQueryBuilder 和 leftJoin 时未初始化的实体集合
我正在使用 Nest.js,并考虑从 TypeORM 迁移到 Mikro-ORM。我正在使用该nestjs-mikro-orm
模块。但我被困在一些看起来很简单的事情上......
我有 3 个实体AuthorEntity
,BookEntity
和BookMetadata
。在我的Author
模块中,我尝试使用该方法左连接Book
和BookMetadata
表createQueryBuilder
。但是在运行我的查询时,我收到一个错误 where Collection<BookEntity> of entity AuthorEntity[3390] not initialized
. 但是,表中的列Author
可以很好地检索。
我的 3 个实体:
以及我运行查询的服务文件:
我错过了什么吗?可能不相关,但我也注意到使用 Nest.js 的 TypeORM 用户有一个特殊之处。autoLoadEntities: true
Mikro-ORM 有类似的东西吗?谢谢 ;)
nestjs - 如何在 NestJS 中拆除 MikroOrm
我最近将我的 AppModule 转换为动态模块,以便我能够根据上下文(E2E 测试等)为 MikroOrm 提供不同的配置,它目前看起来像这样:
现在我试图通过断开与数据库的连接来确保应用程序正常关闭,但不确定在这种情况下在哪里放置生命周期挂钩。似乎不可能有一个带有生命周期钩子的动态模块,所以我正在考虑开发一个单独的提供程序来注入 orm 并在其上编写钩子。
什么是正确的方法?谢谢。
编辑:
我想出了以下解决方案。希望有人指出这是否是最好的方法:
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
但我也不确定如何实现一个。
谢谢!
mikro-orm - 尝试插入具有嵌套父实体的实体时无法插入列“Id”错误
我的 Mikro-Orm (v3.6.15) 模型中有 2 个具有一对多关系的实体(连接到 Postgresql - pg v8.3.0):
乌伊古拉玛(家长)
模块(儿童)
我有一个休息端点(Expressjs)从发布的 Http 请求正文创建 Modul 对象:
当我尝试在下面发布 JSON 对象以创建新的 Modul 时(rootUygulama 对象已经在数据库中):
我得到错误:
当我发送 JSON 如下时,对象已成功创建并插入到数据库中
即使我将空级联数组设置为关系属性存储库,也会尝试插入父对象并失败。
我在配置中遗漏了什么吗?
编辑:
对于我的 Typescript 客户端,我将如何定义 rootUygulama 属性?
应该像
node.js - Mikro-orm:如何将查询结果与聚合到自己的实体中?
假设我有一对多User
的Post
实体。我想用, ,获取用户列表。用于此的 sql 查询如下所示:User
Post
id
username
post_count
我想将此查询的结果提取到它自己的实体中,例如
我怎样才能通过 mikro-orm 做到这一点?
node.js - 为 Node.js 选择 ORM 有多难?或者 Node.js 缺乏成熟的 ORM
我有一个生产项目要开发。这是一个电子商务网站。我当前的堆栈:
- 节点.js
- 打字稿
- PostgreSQL
现在我必须为这个项目选择一个 ORM。我想我有两个选择:
- 类型ORM。我以前用过这个 ORM。它是一款不错且稳定的软件,但是 TypeORM 有一段时间的维护问题。我不确定这个 ORM 的未来。
- MikroORM。TypeORM 缺少一些有用的功能,例如 @Filters(范围)和批量订阅者,而另一方面 MikroORM 具有这些功能或替代品(请参阅过滤器和批量订阅者的替代品)。但是 MikroORM 不那么流行并且相对较新。而且 MikroORM 的许多功能仍处于alpha阶段
概括
缺乏维护和功能但稳定的 ORM 或具有良好维护、新功能但未经实战测试的 ORM。哪个选项更好?或者也许有一些替代方案?
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 提供我的数据库凭据?
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
这对我来说是新的,我无法弄清楚问题是什么。你知道它可能是什么吗?
谢谢你!
typescript - MikroORM Typescript 对象中使用的 `!` 运算符是什么?
!
在 JS 对象的键声明中,冒号前的语法是什么?
类的 MikroORM 语法