【问题标题】:Node.js add created_at and updated_at in entity of typeormNode.js 在 typeorm 的实体中添加 created_at 和 updated_at
【发布时间】:2021-11-22 05:36:01
【问题描述】:

我有这样的task 实体:

import {BaseEntity, Column, Entity, PrimaryGeneratedColumn} from "typeorm";

@Entity()
export class Task extends BaseEntity{
    @PrimaryGeneratedColumn()
    id:number;

    @Column()
    title:string

   @Column()
    description:string

}

我想将 created_at 和 updated_at 字段添加到该实体并使用 Node.js 自动填充它,例如 Laravel 框架。我的数据库是postgres

【问题讨论】:

    标签: node.js typeorm node.js-typeorm


    【解决方案1】:

    我们先导入

    import { CreateDateColumn,UpdateDateColumn } from "typeorm";
    

    在实体中添加此字段和说明符

    @CreateDateColumn({ type: "timestamp", default: () => "CURRENT_TIMESTAMP(6)" })
    public created_at: Date;
    
    @UpdateDateColumn({ type: "timestamp", default: () => "CURRENT_TIMESTAMP(6)", onUpdate: "CURRENT_TIMESTAMP(6)" })
    public updated_at: Date;
    

    【讨论】:

    • 我注意到 Welisson Moura 的回答不包括 CreateDateColumnUpdateDateColumn 装饰器的额外属性。您指定的额外属性有什么原因吗?
    【解决方案2】:
    import {BaseEntity, Column, Entity, PrimaryGeneratedColumn, CreateDateColumn} from "typeorm";
    
    @Entity()
    export class Task extends BaseEntity{
        @PrimaryGeneratedColumn()
        id:number;
    
        @Column()
        title:string
    
       @Column()
        description:string
       
       @CreateDateColumn()
       created_at: Date;
    
       @UpdateDateColumn()
       updated_at: Date;
    
    
    }
    

    【讨论】:

    • 如何为所有实体添加时间戳字段?
    • @ShaSha 你可以使用实体继承技术
    【解决方案3】:
    import { CreateDateColumn, UpdateDateColumn } from 'typeorm';
    
    @CreateDateColumn()
    createdAt: Date;
    
    @UpdateDateColumn()
    updatedAt: Date;
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-05
      • 2023-04-07
      • 2016-11-04
      • 2017-05-26
      • 1970-01-01
      • 2021-11-10
      相关资源
      最近更新 更多