有没有办法(或最佳实践)与我的代码前端共享我的 TypeORM 模型而不完全重复?

Omi*_*lls 6 typeorm

我也想在前端使用我用 TypeORM 创建的实体。有没有一种干净的方法可以做到这一点?或者说我应该继续这样下去。

此时,我的文件结构如下所示(前端的 Angular 8):

/server
  /entity
    ExampleEntity.ts
/app
  /entity
    Example.ts
Run Code Online (Sandbox Code Playgroud)

它们都有相同的内容,但前端缺少所有 TypeORM 构造。

Ale*_*ksi 8

在后端和前端共享相同的模型时,您可以使用一个垫片来防止未定义的装饰器出现错误。只需在您的(前端特定)中定义以下内容tsconfig.json:

{
  ...
  "compilerOptions": {
    ...
    "paths": {
      "typeorm": ["./node_modules/typeorm/typeorm-model-shim.js"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这会覆盖模块分辨率以typeorm指向垫片。在此处查看TypeORM 存储库中的相关问题。

话虽如此,通常我会像您一样倾向于为后端和前端维护单独的模型,因为根据我的经验,无论如何,两者最终都会在某些时候出现分歧:TypeORM 实体通常包含您可能不希望溢出的实现细节当然,您的里程可能会有所不同,并且当您需要时垫片就在那里!