【发布时间】: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