【发布时间】:2019-01-30 08:22:47
【问题描述】:
我从 2 天以来一直在尝试解决这个问题,也许我只是错过了这里的重点。
我的目标是编写一个 NestJS 应用程序(包括 TypeORM),它为我的 2 或 3 个小项目提供 RestAPI,而不是为每个项目编写一个 NestJS 应用程序。
到目前为止一切顺利,该应用程序已准备就绪,可与单个项目(与实体、控制器、服务、模块一起位于子文件夹中)很好地工作,但我无法让它与所有项目一起运行。
重点好像是配置,我用的是ormconfig.json:
[ {
"name": "Project1",
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "<username>",
"password": "<pwd>",
"database": "<database>",
"synchronize": false,
"entities": ["project1/*.entity.ts"],
"subscribers": ["project1/*.subscriber.ts"],
"migrations": ["project1/migrations/*.ts"],
"cli": { "migrationsDir": "project1/migrations" }
}, {
"name": "project2",
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "<another-username>",
"password": "<another-pwd>",
"database": "<another-database>",
"synchronize": false,
"entities": ["project2/*.entity.ts"],
"subscribers": ["project2/*.subscriber.ts"],
"migrations": ["project2/migrations/*.ts"],
"cli": { "migrationsDir": "project2/migrations"
} ]
错误信息说:
[ExceptionHandler] 找不到连接默认值,因为它没有在任何 orm 配置文件中定义
当然找不到“default”,因为我提供了两个具有不同于“default”的唯一名称的配置。
在 ApplicationModule 中,我可以提供连接的名称,如下所示:
TypeOrmModule.forRoot( { name: "project1" } ),
但它只适用于一个项目。
我可以在一个配置中混合所有内容,但是我会将所有内容都放在一个数据库中,所有用户都使用相同的用户,并且可能会混淆实体...
谁能给我一个提示如何解决这个问题?
可能在每个模块中都有getConnection(<name>),但是如何启动ApplicationModule呢?
亲切的问候,
sagerobert
【问题讨论】:
标签: javascript node.js nestjs typeorm