Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js TypeORM:从订阅服务器中排除种子_Node.js_Sequelize.js_Typeorm_Typeorm Datamapper - Fatal编程技术网

Node.js TypeORM:从订阅服务器中排除种子

Node.js TypeORM:从订阅服务器中排除种子,node.js,sequelize.js,typeorm,typeorm-datamapper,Node.js,Sequelize.js,Typeorm,Typeorm Datamapper,我目前正在使用TypeORM库,我对种子和订阅者有问题 问题是每次我为用户运行seed时,我的订户都会被触发并记录新的插入 如何排除正在从种子中提交的插入,并仅记录通过应用程序UI预执行的插入 import { EntitySubscriberInterface, EventSubscriber, InsertEvent, UpdateEvent } from 'typeorm'; import { User } from '../users/user.entity'; @EventSubs

我目前正在使用TypeORM库,我对种子和订阅者有问题 问题是每次我为用户运行seed时,我的订户都会被触发并记录新的插入 如何排除正在从种子中提交的插入,并仅记录通过应用程序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
    }



}
从'typeorm'导入{EntitySubscriberInterface,EventSubscriber,InsertEvent,UpdateEvent};
从“../users/User.entity”导入{User};
@EventSubscriber()
导出类HistorySubscriber实现EntitySubscriberInterface{
/**
*指示此订阅服务器仅侦听用户事件。
*/
listenTo(){
返回用户;
}
/**
*在用户插入之前调用。
*/
//eslint禁用下一行无未使用的变量
异步afterInsert(事件:InsertEvent){
//即使使用seed,它也会被多次调用
}
}

对于每个数据库操作(查询),可以指定是否应调用侦听器:请参阅和。因此,对于种子,请为每个数据库操作禁用侦听器/订阅服务器。

对于每个数据库操作(查询),可以指定是否应调用侦听器:请参阅和。因此,对于您的种子,请为每个数据库操作禁用侦听器/订阅者。

非常感谢,您又救了我一次:)还有一个问题:我如何在createQueryBuilder()中使用侦听器选项?您可以通过流畅的api配置行为:
等待getCustomRepository(User)。createQueryBuilder().insert().callListeners(false). //...
@Loki很高兴我能帮上忙:)非常感谢,你又救了我:)还有一个问题我如何在createQueryBuilder()中使用侦听器选项?你可以通过流畅的api配置行为:
等待getCustomRepository(User)。createQueryBuilder().insert().callListeners(false)。//@Loki很高兴我能帮忙:)