我目前正在使用 TypeORM 库,但我遇到了种子和订阅者的问题
问题是每次我为用户运行种子时,我的订阅者都会被触发并记录新的插入
如何排除来自种子的插入,并仅记录通过 App UI 预制的插入
import { EntitySubscriberInterface, EventSubscriber, InsertEvent, UpdateEvent } from 'typeorm';
import { User } from '../users/user.entity';
@EventSubscriber()
export class HistorySubscriber implements EntitySubscriberInterface<User> {
/**
* Indicates that this subscriber only listen to User events.
*/
listenTo() {
return User;
}
/**
* Called before User insertion.
*/
// eslint-disable-next-line no-unused-vars
async afterInsert(event: InsertEvent<User>) {
// this gets called multiple times even with seed
}
}
最佳答案
对于每个数据库操作(查询),可以指定是否应调用监听器:参见 SaveOptions 和 QueryBuilder 。因此,对于您的种子,请为每个数据库操作禁用监听器/订阅器。
关于node.js - TypeORM:从订阅者中排除种子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59747965/