【问题标题】:Mikro-orm: Only abstract entities were discoveredMikro-orm:只发现了抽象实体
【发布时间】:2022-01-18 11:44:05
【问题描述】:

我在 node.js (+Express) 后端工作,我正在尝试在不使用 Typescript 的情况下使用 Mikro-orm。

我遵循 this project 作为参考 + Mikro-orm 文档,但我不断收到此错误:

MetadataError: Only abstract entities were discovered, maybe you forgot to use @Entity() decorator?

有没有办法避免使用 Typescript 的装饰器?或者更好的问题是是否可以在纯 JS 项目中使用 Mikro-orm?

配置文件mikro-orm.config.js如下:

module.exports = {
  entities: [EntityX, EntitiyZ],
  type: 'mysql',
  dbName: 'example',
  highlighter: new SqlHighlighter(),
  debug: true
};

我安装的版本是:

"@mikro-orm/core": "^4.5.10",
"@mikro-orm/mysql": "^4.5.10"

任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 请提供您的实体代码,因为与它们相关的问题。

标签: javascript node.js mikro-orm


【解决方案1】:

当我发现这个问题时,我遇到了这个确切的问题(感谢发布)。

我能够通过确保我的每个实体文件的默认导出具有 Mikro-ORM 似乎期望的形状来解决该问题,在您的情况下看起来类似于:

export default {
    EntityX,
    schema,
    entity: EntityX
}

**编辑

再看一遍,我意识到您使用的是 CommonJS 语法,因此在没有看到您的实体文件的情况下,我假设您可能会丢失以下内容:

module.exports.EntityX = EntityX;
module.exports.entity = EntityX;
module.exports.schema = schema;

在您的实体文件中,您忘记连接entities/index.js,如您链接的示例所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 2022-11-10
    • 1970-01-01
    • 2022-01-09
    • 2021-02-08
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多