node.js - 如何在TypeORM中使用订阅者?

标签 node.js mongodb typeorm

考虑使用 mongodb 进行以下设置(该问题可能与数据库无关):

实体/Person.ts

import { Entity, Column } from 'typeorm';

@Entity
export class Person {
  @Column()
  name: string;
}

订阅者/PersonSubscriber.ts

import {
  EntitySubscriberInterface,
  EventSubscriber,
  InsertEvent,
} from 'typeorm';
import { Person } from '../entity/Person';

@EventSubscriber()
export class PersonSubscriber implements EntitySubscriberInterface<Person> {
  listenTo() {
    return Person;
  }

  afterInsert(event: InsertEvent<Person>) {
    console.log(event);
  }
}


配置/mongo.ts

import { MongoConnectionOptions } from 'typeorm/driver/mongodb/MongoConnectionOptions';

export const mongoConfig: MongoConnectionOptions = {
  type: 'mongodb',
  host: 'localhost',
  database: process.env.DB_NAME,
  useNewUrlParser: true,
  useUnifiedTopology: true,
  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',
  },
};

索引.ts

import { createConnection } from 'typeorm';
import { mongoConfig } from 'config/mongo';

createConnection(mongoConfig)
  .then(connection => {
    console.log('connection established');
  })
  .catch(console.error);

PersonSubscriberconnection.subscribers 数组的第一个元素,但是在插入 Person 文档后,InsertEvent 不会记录到控制台。

缺少什么?

附注这是我设法收集的所有文档

总而言之,他们仍然没有讲述完整的故事。

最佳答案

文件名必须是name.subscribe.ts

ormconfig

"subscribers": ["dist/**/**/**/*.subscriber{.ts,.js}"]

对我有用

关于node.js - 如何在TypeORM中使用订阅者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58146915/

相关文章:

mongodb - 汇总匹配 true 的字段数

javascript - 如何在 TypeORM 中左连接 JSON 函数

typescript - TypeORM单表继承更新实体类型

typescript - 为什么在尝试建立关系时 joinColumns 未定义?

javascript - 如何将变量从 nodejs 发送到所有连接的客户端?

html - 从 Mongoose 查询数据并显示在html页面上

Node.js 应用程序在本地运行但在 Heroku 上失败

mongodb - meteor :部署时 find() 不返回任何文件

javascript - Node.js 上的 RegExp 导致不确定模式

javascript - 将文档插入数据库之前的 MongoDB 空集合