Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Nest.js: typeorm, repository, entity, database, crud

Как работать с базой данных с помощью TypeORM?

Вопрос проверяет понимание работы с базой данных через ORM и умение реализовывать CRUD-операции.

Короткий ответ

TypeORM — это ORM, которая упрощает взаимодействие с базами данных. С помощью TypeORM можно определять сущности, управлять схемами и выполнять запросы через репозитории. В NestJS интеграция выполняется через модуль TypeOrmModule.

Длинный ответ

TypeORM позволяет абстрагироваться от SQL-запросов и работать с данными как с объектами. Основные шаги для использования TypeORM в NestJS:

Установить зависимости:

npm install @nestjs/typeorm typeorm mysql2

Настроить модуль подключения:

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './user.entity';

@Module({
  	imports: [
    		TypeOrmModule.forRoot({
      		type: 'mysql',
      		host: 'localhost',
      		port: 3306,
      		username: 'root',
      		password: 'password',
      		database: 'test',
      		entities: [User],
      		synchronize: true,
    	}),
    	TypeOrmModule.forFeature([User]),
  ],
})
export class AppModule {}

Создать сущность:

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class User {
  	@PrimaryGeneratedColumn()
  	id: number;

  	@Column()
  	name: string;

  	@Column()
  	email: string;
}

Написать сервис для работы с данными:

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';

@Injectable()
export class UserService {
  	constructor(
    		@InjectRepository(User) private userRepository: Repository<User>,
  	) {}

  	findAll() {
    		return this.userRepository.find();
  	}

  	create(user: User) {
    		return this.userRepository.save(user);
  	}
}

Подключить сервис в контроллере:

import { Controller, Get, Post, Body } from '@nestjs/common';
import { UserService } from './user.service';
import { User } from './user.entity';

@Controller('users')
export class UserController {
  	constructor(private userService: UserService) {}

  	@Get()
  	findAll() {
    		return this.userService.findAll();
  	}

  	@Post()
  	create(@Body() user: User) {
    		return this.userService.create(user);
  	}
}

TypeORM упрощает управление базой данных, предоставляя объектно-ориентированный подход. Используйте его для масштабируемых и структурированных приложений.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Nest.js

    Nest.js

Ключевые слова

#typeorm

#repository

#entity

#database

#crud

Подпишись на Node.js Developer в телеграм