#node.js #typeorm #node.js-typeorm
#node.js #typeorm #node.js-typeorm
Вопрос:
У меня есть 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
Ответ №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;
Комментарии:
1. Я заметил, что ответ Велиссона Моуры не включал дополнительные свойства для
CreateDateColumn
UpdateDateColumn
декораторов и . Есть ли какая-либо причина для дополнительных свойств, которые вы указали?
Ответ №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;
}
Комментарии:
1. как насчет добавления полей временных меток ко всем объектам?
2. @ShaSha вы можете использовать метод наследования сущностей
Ответ №3:
import { CreateDateColumn, UpdateDateColumn } from 'typeorm';
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
Ответ №4:
Я перепробовал все предыдущие способы, о которых вы сообщали, но единственный способ, который сработал, был этот.
import moment from "moment";
@CreateDateColumn()
created_at: Date;
@UpdateDateColumn()
updated_at: Date;
@BeforeInsert()
insertCreated() {
this.created_at = new Date(
moment().tz("America/Sao_Paulo").format("YYYY-MM-DD HH:mm:ss")
);
this.updated_at = new Date(
moment().tz("America/Sao_Paulo").format("YYYY-MM-DD HH:mm:ss")
);
}
@BeforeUpdate()
insertUpdated() {
this.updated_at = new Date(
moment().tz("America/Sao_Paulo").format("YYYY-MM-DD HH:mm:ss")
);
}