【问题标题】:Launch NestJs application with default admin user使用默认管理员用户启动 NestJs 应用程序
【发布时间】:2021-06-29 15:25:06
【问题描述】:

如果我正在使用 TypeORM 管理的数据库创建 NestJs 应用程序,该数据库考虑 2 种类型的用户(普通用户和管理员用户),其中只有管理员可以创建其他用户(任何类型),有什么好的做法可以保证也就是说,当应用启动时,它已经有一个默认管理员了?

我在网上搜索并找到了有关播种或迁移的结果,但在我看来,这些都是只能在开发中使用的变通方法。

如果应用要投入生产,应该如何处理?

【问题讨论】:

  • 你说的是SQL用户吧?还是一些自定义用户?
  • @JuanRambal,自定义用户。我有一个名为 User 的实体。
  • 嗯,在这种情况下可以提供更多上下文吗?我不明白你想做什么
  • 只是:如果只有用户可以创建其他用户,我需要一个用户从一开始就存在,否则就是死锁。
  • 好的,在这种情况下,您的解决方案是有效的,在您的应用程序模块或数据库模块上使用 OnModuleInit 可确保您的 api 在启动时具有管理员用户

标签: mongodb nestjs typeorm


【解决方案1】:

最终我想出了一个可能的解决方案:在 UserService 上实现 OnModuleInit 并让它查询默认管理员用户的数据库,如果它不存在,则创建它。

但我仍然不知道这是否是一个好的解决方案。

【讨论】:

    猜你喜欢
    • 2015-05-05
    • 2018-11-21
    • 2013-12-13
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多