Гнездо JS: Как преобразовать объект Date в пользовательский формат (пользовательская строка или unix отметка времени) - PullRequest
1 голос
/ 24 февраля 2020

Я создаю Nest JS API и хотел бы предоставить API мои объекты Date в виде unix отметок времени / пользовательских форматов строк.

По умолчанию Nest JS использует формат, показанный в этом примере: " 2020-02-24T07: 01: 31.229Z "

Любая идея о том, как легко настроить это, не заставляя мои объекты API содержать "число" или "строка" (иначе говоря, преобразование вручную) вместо даты?

Обратите внимание, что я не спрашиваю о TypeORM и о том, как хранить объекты даты. Это вопрос о том, как заставить объекты Nest JS сериализировать / десериализовать Date в JSON.

Спасибо,

1 Ответ

0 голосов
/ 04 апреля 2020

Если вы хотите изменить некоторые классы:

С https://github.com/typestack/class-transformer#basic -использование :

import { Transform } from "class-transformer";

export class Model {
    @Type(() => Date)
    @Transform(value => value.valueOf(), { toPlainOnly: true })
    date: Date;
}

Для моего случая я хочу, чтобы все даты быть преобразованным. Я не нашел подходящего способа сделать это, но мне удалось глобально изменить формат даты.

В моем main.ts я добавил:

Date.prototype.toJSON = function() {
    return this.valueOf();
};
...