Reputation: 33
I want to use custom repository using extends Repository<>.
When I use custom repository using extends Repository<>, error of "Cannot read property 'findOne' of undefined" is occurred.
custom repository
import { EntityRepository, getRepository, Repository } from "typeorm";
import { User } from "../entity/User";
@EntityRepository(User)
export class AuthRepository extends Repository<User> {
loginByEmail(email: string) {
return this.findOne({ email: email });
}
}
Entity of User
import {
Entity,
Unique,
PrimaryGeneratedColumn,
Column,
Timestamp,
CreateDateColumn,
UpdateDateColumn,
} from "typeorm";
@Entity()
@Unique(["email"])
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
firstname: string;
@Column()
lastname: string;
@Column()
email: string;
@Column()
password: string;
@CreateDateColumn()
createdAt: Timestamp;
@UpdateDateColumn()
updatedAt: Timestamp;
@Column({ type: "boolean", default: false })
isAdmin: boolean;
}
and my ormconfig.ts is below.
import { ConnectionOptions } from "typeorm";
const ormconfig: ConnectionOptions = {
type: "mysql",
host: process.env.DB_HOST,
port: parseInt(process.env.DB_PORT, 10),
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
synchronize: true,
logging: false,
entities: ["src/entity/**/*.ts"],
migrations: ["src/migration/**/*.ts"],
subscribers: ["src/subscriber/**/*.ts"],
cli: {
entitiesDir: "src/entity",
migrationsDir: "src/migration",
subscribersDir: "src/subscriber",
},
};
export default ormconfig;
However, below code is work when I use getRepository
.
import { EntityRepository, getRepository, Repository } from "typeorm";
import { User } from "../entity/User";
@EntityRepository(User)
export class AuthRepository extends Repository<User> {
loginByEmail(email: string) {
return getRepository(User).findOne({ email: email });
}
}
In addition, when I confirm this
by console.log()
, the result is empty {}
.
AuthRepository {}
what is happened?. How to solve this situation.
please help me, thank you.
Upvotes: 2
Views: 1742
Reputation: 420
the answer for me was to remove UserRepository
from providers: []
in user.module.ts
Upvotes: 3