nestjs typeorm mongodb UpdateDateColumn 无效?

定义的公共实体类

import {
  Column,
  CreateDateColumn,
  Entity,
  ObjectIdColumn,
  ObjectID,
  UpdateDateColumn,
  BeforeUpdate,
} from 'typeorm';

@Entity()
// 公共字段
export abstract class Common {
  @ObjectIdColumn()
  id: ObjectID;

  @CreateDateColumn()
  createdAt: Date;

  @UpdateDateColumn()
  updatedAt: Date;
  // 软删除
  @Column({ default: false, select: false })
  deleted: boolean;

  // 更新次数
  @Column({ default: 0, select: false })
  updateCount: number;
}

调用接口修改数据

  // 更新用户
  async update(id: string, user: UpdateUserDto) {
    await this.findOne(id);
    /// 如果更新密码
    if (user.password) {
      const { salt, hashPassword } = this.getPassword(user.password);
      user.salt = salt;
      user.password = hashPassword;
    }
    await this.userRepository.update(id, user);
    return this.findOne(id);
  }

然后我发现 。修改时间没有变
image.png
怎么回事?哪里写错了嘛?

然后我看网上添加这个

 @UpdateDateColumn()
  updatedAt: Date;

  @BeforeUpdate()
  updateDate() {
    this.updatedAt = new Date();
  }

还是没有变化?难道需要手动修改嘛?

阅读 2.7k
1 个回答
async update(id: string, user: UpdateUserDto) {
    await this.findOne(id);
    /// 如果更新密码
    if (user.password) {
      const { salt, hashPassword } = this.getPassword(user.password);
      user.salt = salt;
      user.password = hashPassword;
    }
    user.updatedAt = new Date();  // 手动设置更新日期
    await this.userRepository.update(id, user);
    return this.findOne(id);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题