【问题标题】:Import gives undefined in Typeorm导入在 Typeorm 中给出未定义
【发布时间】:2020-04-13 00:53:49
【问题描述】:

我是使用 typeorm 的新手。我正在从事的项目创建了所有实体。然后,我想让进口产品更清洁。由于我像下面的示例一样导入了代码,因此代码崩溃了。

我从 'entities/index.ts' 导出文件

import Account from './Account';
import Order from './Order';

export {
    Account,
    Order,
};

因此,我可以一次导入所有实体。

import { Account, Order } from '@entities/index'

PS:上面的例子是为了展示案例而做的一个假人。

问题是我面临的。当我运行应用程序时,它显示我未定义。我尝试像

一样直接导入
import Account from '@entities/Account';   

然后就可以了。但我不想那样做。如果我这样做,进口看起来会很糟糕。 您可以在下面的示例中看到我如何调试它。 (BaseEntity 给出未定义)

用户.ts

BaseEntity.ts

实体/index.ts

结果

感谢您的贡献。

【问题讨论】:

  • 顺便说一句,仅供参考。我已经在项目中使用了这个系统。它绝对有效。我用过猫鼬,我决定改变数据库,然后我开始转换项目。现在,我面临这个问题:/
  • 没有看到所有文件的所有导入,我们无法确定,但谷歌搜索Object prototype may only be an Object or null: undefined 似乎答案通常是存在周期性依赖关系。
  • 首先感谢您的回答。是的,但据我所知,要在实体之间建立关系。我将其设为周期性依赖。就像在示例中一样。 github.com/typeorm/typeorm/blob/master/docs/… 可以看例子。 Photo.ts 导入 User.ts, User.ts 导入 Photo.ts
  • 这篇文章似乎解决了存在循环依赖时依赖加载顺序的核心问题。 medium.com/visual-development/… 所以加载顺序可能是 Account、BaseEntity、User 和 User 在 Account 需要的时候还没有完全加载。
  • 谢谢@Jim 这篇文章确实帮助了我。如果您为该问题写一个简短的答案,我可以批准该答案。它可以帮助面临同样问题的人。

标签: javascript node.js typescript typeorm


【解决方案1】:

问题似乎是 javascript 循环依赖,而不是 TypeORM 问题。这篇文章似乎解决了存在循环依赖时依赖加载顺序的核心问题。 Circular Dependency Issues 所以加载顺序可能是Account, BaseEntity, UserUserAccount 需要它的时候还没有完全加载。

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 2021-04-03
    • 1970-01-01
    • 2017-12-12
    • 2020-04-19
    • 1970-01-01
    相关资源
    最近更新 更多