Typescript 尝试使用tsyringe和typeorm进行依赖项注入时遇到问题

Typescript 尝试使用tsyringe和typeorm进行依赖项注入时遇到问题,typescript,express,typeorm,Typescript,Express,Typeorm,我正在尝试学习依赖注入,并在一个项目中实现它,已经用了一个星期了,tsyringe和mongoose一起使用,它还可以,但由于某种原因,当我尝试用typeorm时 我了解到注入失败的原因是没有找到默认连接,但没有必要在mt其他mongoose项目中设置此tsyringe连接 这是控制器代码、模型代码和路由代码,我隐藏了create方法,因为我知道问题不存在,因为我已经测试了很多次,任何tipo或建议都会有帮助,可能不在ormconfig.json中,但我还是会把它放在那里,因为我不确定: imp

我正在尝试学习依赖注入,并在一个项目中实现它,已经用了一个星期了,tsyringe和mongoose一起使用,它还可以,但由于某种原因,当我尝试用typeorm时

我了解到注入失败的原因是没有找到默认连接,但没有必要在mt其他mongoose项目中设置此tsyringe连接

这是控制器代码、模型代码和路由代码,我隐藏了create方法,因为我知道问题不存在,因为我已经测试了很多次,任何tipo或建议都会有帮助,可能不在ormconfig.json中,但我还是会把它放在那里,因为我不确定:

import { Request, Response } from "express"
import { autoInjectable } from "tsyringe";
import { Repository } from "typeorm";
import {TeamEntity} from "../models/team.model";

@autoInjectable()
export default class TeamController {
    private repo: Repository<any>

    constructor(repo?: TeamEntity) {
        this.repo = repo.repo;
    }

    create = async (req: Request, res: Response) =>{
    // creates a new team
}
}

// team.controller.ts
{
“类型”:“postgres”,
“数据库”:“postgres”,
“密码”:“,
“日志记录”:正确,
“实体”:[
“src/models/*.model.ts”
],
“迁移”:[
“src/migrations/*.migration.ts”
],
“cli”:{
“entitiesDir”:“src/models/”,
“migrationsDir”:“src/migrations/”
}
}
\\ormconfig.json

问题在于我在完全连接到数据库之前实例化了控制器,我找到的解决方案是使用tsyringe的延迟装饰器,并去掉private属性,控制器类保持如下状态:

    constructor(@inject(delay(() => TeamService)) public TeamService: TeamService) {
    }

import { Router } from "express";
import TeamController from "./controllers/team.controller";

const teamController = new TeamController();

const appRouter = Router();

appRouter.post("/teams", () => teamController.create);

export default appRouter;

//routes.ts
{
    "type": "postgres",
    "database": "postgres",
    "password": "<password>",
    "logging": true,
    "entities": [
       "src/models/*.model.ts"
    ],
    "migrations": [
       "src/migrations/*.migration.ts"
    ],
    "cli": {
       "entitiesDir": "src/models/",
       "migrationsDir": "src/migrations/"
    }
 }

\\ ormconfig.json
    constructor(@inject(delay(() => TeamService)) public TeamService: TeamService) {
    }