У меня есть простой BeforeInsert
и AfterInsert
хук, который не вызывается. Все, что он делает, это лог hook
. Я использую гнездо js -graphql, но я не думаю, что это проблема. Здесь - минимальное репозиторий Github с примером. Вы можете запустить его, выполнив npm i
, а затем отправив мутацию (площадка находится на localhost:3000/graphql)
с телом createUser(createInput:{password:"password" email:"test@test.com"})
. Она должна завершиться успешно и записать hook
.
Здесь хук, ничего не регистрируется:
@Entity('user')
export default class UserEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
@IsEmail()
email: string;
@Column()
@Length(7, 42)
password: string;
@BeforeInsert()
@AfterInsert()
async validate() {
console.log("hook")
}
}
Он вызывается из службы здесь . Вставка не выдает ошибку, и here2
регистрируется:
@Injectable()
export class UserService {
constructor(
@InjectRepository(UserEntity)
private readonly userRepository: Repository<UserEntity>,
) { }
async createNew(email: string, password: string): Promise<number> {
console.log("here2")
const hashedPassword = "test"
const res = await this.userRepository.insert({ email, password: hashedPassword })
return res.identifiers[0].id
}
}