Класс сущности в Nest
Пусть таблица в базе уже есть, а в проекте нет типа, который отражает её строку. Код не знает, какие колонки ждать от запроса и как называть поля в ответе.
Сущность - это класс с декоратором
Entity. Он говорит TypeORM,
что экземпляры соответствуют одной
таблице. Каждое свойство с декоратором
Column становится колонкой.
Имя класса обычно совпадает с темой
данных, а имя таблицы можно задать
отдельно, если нужно.
Покажем на примере постов:
import { Column, Entity } from 'typeorm';
@Entity()
export class Post {
@Column()
title: string;
}
Сущность подключают в модуле темы через forFeature:
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
и подключите базу с автоматическим
созданием таблиц при старте.