Назад к вопросам
Junior
125
questionbank

Какие ORM вы использовали в своих проектах?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

В своих проектах на Node.js я активно использовал Sequelize и TypeORM.

Sequelize — проверенная временем ORM, поддерживающая множество баз данных (PostgreSQL, MySQL, SQLite, SQL Server). Она отлично подходит для проектов, где не используется TypeScript, или когда требуется более традиционный подход к работе с базой данных.

Пример использования Sequelize с PostgreSQL:

// Определение модели User
const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING
  }
}, {
  // Другие опции модели
});

// Создание записи
async function createUser() {
  const jane = await User.create({ firstName: "Jane", lastName: "Doe" });
  console.log("Jane's auto-generated ID:", jane.id);
}

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

Пример использования TypeORM с PostgreSQL:

// Определение сущности User
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

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

  @Column()
  firstName: string;

  @Column()
  lastName: string;
}

// Создание записи
import { AppDataSource } from "./data-source";

async function createUser() {
  await AppDataSource.initialize();
  const userRepository = AppDataSource.getRepository(User);

  const jane = new User();
  jane.firstName = "Jane";
  jane.lastName = "Doe";

  await userRepository.save(jane);
  console.log("Jane's auto-generated ID:", jane.id);

  await AppDataSource.destroy();
}

Выбор между этими ORM зависел от стека проекта, требований к типизации и предпочтений команды. Обе ORM зарекомендовали себя как надежные и функциональные инструменты для работы с базами данных в Node.js.