【发布时间】:2020-10-07 12:02:29
【问题描述】:
我正在尝试学习依赖注入并在一个项目中实现它大约一个星期,已经将 tsyringe 与 mongoose 一起使用,并且一切正常,但由于某种原因,当我尝试将它与 typeorm 一起使用时;
我收到注入失败的原因是没有找到默认连接,但是在mt其他猫鼬项目中不需要设置这个tsyringe连接;
这是控制器代码、模型代码和路由代码,我隐藏了 create 方法,因为我知道问题不存在,因为我已经测试了很多次,任何提示或建议都会有所帮助,并且可能但不在 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
@Entity({name: "teams"})
export default class TeamModel extends BaseEntity implements TeamI{
@PrimaryGeneratedColumn({name: "team_id"})
teamId: number
@Column({name: "team_name"})
teamName: string
}
@singleton()
export class TeamEntity{
entity: BaseEntity = new TeamModel();
repo: Repository<any> = getRepository(TeamModel)
}
//team.model.ts
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
【问题讨论】:
标签: typescript express typeorm