РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsPmEnMC 130 of 168 menu
◀ ▶

Денежная колонка в Nest

Пусть материал продаётся за рубли с копейками. Обычное число с плавающей точкой копит ошибки округления, если складывать много операций.

Сумму хранят в типе numeric с фиксированной точностью: сколько цифр всего и сколько после запятой. В TypeScript поле лучше объявить как string: так значение приходит из драйвера без потери копеек. TypeORM передаёт точность в опциях колонки.

Покажем на примере постов:

import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class Post { @PrimaryGeneratedColumn() id: number; @Column('numeric', { precision: 10, scale: 2 }) price: string; }

Сущность указывают в модуле темы:

import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Post } from '../post.entity.js'; @Module({ imports: [TypeOrmModule.forFeature([Post])], }) export class PostsModule {}

Корневой модуль открывает базу и подключает модуль с таблицей:

import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { PostsModule } from './posts/posts.module.js'; @Module({ imports: [ TypeOrmModule.forRoot({ type: 'postgres', host: 'localhost', port: 5432, username: 'postgres', password: 'postgres', database: 'site', autoLoadEntities: true, synchronize: true, }), PostsModule, ], }) export class AppModule {}

Опишите в Worker колонку для месячной зарплаты с двумя знаками после запятой, создайте WorkersModule и включите создание таблиц при старте.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить